面向对象之继承

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 面向对象之继承
{
    class Program
    {
        static void Main(string[] args)
        {
            //记者:我是记者,我的爱好是偷拍,我的年龄34,我是一个男的
            //程序员:我叫孙权  我的年龄23  我是男生  我的工作年限是3年
            Reporter rep = new Reporter("狗仔", 34, ‘男‘, "偷拍");
            rep.ReporterSayhello();
            Programmer pro = new Programmer("孙权",23,‘男‘,3);
            pro.ProgrammerSayhello();
            Console.ReadKey();
        }

        public class person
        {
            private string _name;

            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
            private int _age;

            public int Age
            {
                get { return _age; }
                set { _age = value; }
            }
            private char _gender;

            public char Gender
            {
                get { return _gender; }
                set { _gender = value; }
            }
            public person(string name, int age, char gender)   // 声明一个父类的构造函数
            {
                this.Name = name;
                this.Age = age;
                this.Gender = gender;
            }

        }
        public class Reporter : person
        {
            private string _hobby;

            public string Hobby
            {
                get { return _hobby; }
                set { _hobby = value; }
            }

            public Reporter(string name, int age, char gender, string hobby)
                : base(name, age, gender)//声明继承父类。。
            {
                this.Hobby = hobby;
            }
            public void ReporterSayhello()
            {
                Console.WriteLine("我叫{0},我是一名记者,我的爱好是{1},我是{2}生,我今年{3}岁了", this.Name, this.Hobby, this.Gender, this.Age);
            }

        }
        public class Programmer : person
        {
            private int _WorkYear;

            public int WorkYear
            {
                get { return _WorkYear; }
                set { _WorkYear = value; }
            }
            public Programmer(string name, int age, char gender, int workyear)
                : base(name, age, gender)
            {
                this.WorkYear = workyear;

            }
            public void ProgrammerSayhello()
            {
                Console.WriteLine("我叫{0},我是一名程序猿,我是{1}生,我今年{2}岁了,我的工作年限是{3}年", this.Name, this.Gender, this.Age, this.WorkYear);

            }
        }
    }
}
时间: 2024-10-09 23:42:25

面向对象之继承的相关文章

黑马程序员——Java基础---面向对象之继承

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流!                                                                 面向对象之继承  一:继承(extends) (1)继承的体系结构:就是对要描述的事物进行不断的向上抽取,就出现了体系结构.

javascript面向对象程序设计——继承初步(by vczero)

上一篇说了javascript的封装,没有刻意去说javascript的“共有函数”.“私有函数”,因为个人觉得这只是作用域的问题,我们不能刻意的模仿强类型语言(C++/JAVA)而去编写代码.尊重每一门语言的特性才是最为重要的. 一.基于prototype原型的继承 1 var Person = function(name, age){ 2 this.name = name; 3 this.age = age; 4 } 5 6 Person.prototype = { 7 addUser: f

C++ Primer 学习笔记_69_面向对象编程 --继承情况下的类作用域

面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这种类作用域的层次嵌套使我们能够直接访问基类的成员,就好像这些成员是派生类成员一样: Bulk_item bulk; cout << bulk.book() << endl; 名字book的使用将这样确定[先派生->后基类]: 1)bulk是Bulk_item类对象,在Bulk_item类中查找,找不到名

面向对象--多继承&amp;派生类对象内存布局分析&amp;各基类指针所指向的位置分析

背景 原文链接:ordeder  http://blog.csdn.net/ordeder/article/details/25477363 关于非虚函数的成员函数的调用机制,可以参考: http://blog.csdn.net/yuanyirui/article/details/4594805 成员函数的调用涉及到面向对象语言的反射机制. 虚函数表机制可以查看下面这个blog: http://blog.csdn.net/haoel/article/details/1948051 总结为: 其一

【面向对象】继承(转载)

[面向对象]继承 1.继承 1)复用:开发只需要定义独有的功能(属性和方法),再复用曾经写过的功能(属性和方法) 2)extends:继承的关键字 格式:class 子类 extends 父类 3)子类可以继承父类的属性和方法 4)继承本质:把父类的属性和方法代码拷贝到子类中,在写子类代码时候,可以减少代码量,只需要添加新的部分 5)java中继承是单继承,但可以层层继承 单继承:子类只能有一个直接父类 案例: public class Demo2 { public static void ma

转 python语法学习面向对象之继承

传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承. 继承: 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法   class 派生类

C++ Primer 学习笔记_69_面向对象编程 -继承景况下的类作用域

面向对象编程 --继承情况下的类作用域 引言: 在继承情况下,派生类的作用域嵌套在基类作用域中:如果不能在派生类作用域中确定名字,就在外围基类作用域中查找该名字的定义. 正是这种类作用域的层次嵌套使我们能够直接访问基类的成员,就好像这些成员是派生类成员一样: Bulk_item bulk; cout << bulk.book() << endl; 名字book的使用将这样确定[先派生->后基类]: 1)bulk是Bulk_item类对象,在Bulk_item类中查找,找不到名

轻松学习JavaScript十三:JavaScript基于面向对象之继承(包含面向对象继承机制)

一面相对象继承机制 今天算是什么都没干,尽在了解面向对象三大特性之一的继承了,过去的学习的C++和C#都是正统的面向对象语 言,学习的时候也没有怎么深入了解过,只是简单的学习最基础的继承.下午在看继承机制的时候,看到一个很经典 的继承机制实例.这个实例使用UML很好的解释了继承机制. 说明继承机制最简单的方式是,利用一个经典的例子就是几何形状.实际上,几何形状只有两种,即椭圆形(是圆 形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形.矩形和五边形都是多边形的一种, 具有

Javascirpt 面向对象总结-继承

JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: // 定义一个动物类 function Animal (name) { // 公有属性 this.name = name || 'Animal'; // 实例方法 this.sleep = function(){ console.log(this.name + '正在睡觉!'); } } // 原型方法 Animal.prototype.eat = function(food) { console.log(this.nam