继承

我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,

单独的封装到一个类中,作为这些类的父类。

Student、Teacher、Driver  子类 派生类

Person                               父类  基类

子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段。

问题:子类有没有继承父类的构造函数?

答:子类并没有继承父类的构造函数,但是子类会默认的调用父类的无参数的构造函数。

创建父类对象,让子类中可以使用父类中的成员。

 

继承的单根性:一个子类只能有一个父类。

继承的传递性:

 

Object是所有类的基类

 

New关键字

1,  创建对象

2,  隐藏从父类哪里继承过来的同名成员

3,  隐藏的后果就是子类调用不到父类的成员。

 

里氏转换

1,  子类可以赋值给父类

2,  如果父类中装的是子类对象,那么可以将这个父类强转为子类对象

                  1、里氏转换

            1)、子类可以赋值给父类:如果有一个地方需要一个父类作为参数,我们可以给一个子类代替

             Student s = newStudent();

            Person p =new Student();//s;

 

            2)、如果父类中装的是子类对象,那么可以讲这个父类强转为子类对象。

 

            //is的用法

            //if (p is Student)

            //{

            //    Student ss =(Student)p;

            //   ss.StudentSayHello();

            //}

            //else

            //{

            //   Console.WriteLine("转换失败");

            //}

 

            //as的用法

 

            Student t =p as Student;

            t.StudentSayHello();

            Console.ReadKey();

 

is:表示类型转换,如果能够转换成功,则返回一个true,否则返回一个false

as:表示类型转换,如果能够转换则返回对应的对象,否则返回一个null

 

protected

受保护的:可以再当前类的内部以及类的子类中访问。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值