C#回顾学习笔记二十一:面向对象的继承特征

面向对象有三大特征:封装、继承、多态。所谓的继承就是“子承父业”,父有的东西也会继承到子那里。表现在代码里就是:
第1步,假如现在有一个Person.cs类:
class Person
    {
        public string Name { get; set; }
        public int age { get; set; }
    }


第2步,现在声明一个Teacher.cs类,代码如下:
class Teacher : Person
    {


    }
如代码演示的,在Teacher后用冒号跟上Person,表示Teacher类继承自Person类。
第3步,直接在主函数声明Teacher类的对象:
class Program
    {
        static void Main(string[] args)
        {
            Teacher tea = new Teacher();
            tea.Name = "诚老师";
            tea.age = 26;
            Console.WriteLine("这个老师叫{0},已经{1}岁了", tea.Name, tea.age);
            Console.ReadKey();
        }
    }
可以发现,虽然在Teacher类中并没有写任何属性,却可以调用到Name和age属性,实际上这就是继承带来的好处。继承可以让父类的东西被子类拥有,但父类的构造函数是不能继承给子类的。
父类一般也叫基类,子类也叫派生类。这更加能说明子类是从父类那儿发展出来,并派生出来的新类,拥有父类的样貌,又可以有着自己特有的样貌。继承需要注意几件事情:
1.继承是可以传递的。如果B类继承自A类,C类又继承自B类,那么C类就拥有了A类和B类的成员。2.Object类是所有类的基类。
3.构造函数和析构函数不能被继承。除此以外的其他成员都可以被继承。父类中成员的访问方式只是决定子类是否能够访问它们。
4.子类如果定义了与继承的成员同名的新成员,那么就可以覆盖已继承的成员。但子类的成员依然存在,不是被删除了,只是不能再访问到。
5.类可以定义虚方法、虚属性以及虚索引指示器,它的派生类可以重载这些成员,从而体现出多态的特征。
6.子类只能从一个父类继承,不可以同时继承两个父类,但可以继承多个接口。因此如果有需要继承多个类的时候,可以尝试用接口来代替。
7.继承的特性:①单根性、一个子类只能有一个父类;②传递性。
8.子类并没有继承父类的构造函数,但是子类会默认调用父类无参数的构造函数,创建父类对象,让子类可以使用父类中的成员。所以,如果在父类中重写了一个有参数的构造函数之后,那个无参数的就没用了,子类就无法调用了,所以子类会报错。
解决方法:①在父类中重新写一个无参数的构造函数。②在子类中显示调用父类的构造函数,使用base。
9.在C#中,默认所有类都直接或间接继承object类。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值