C#---------------继承和多态初步

继承:在程序中,如果一个类A:类B,这种机制就是继承。

子类可以继承父类的所有内容(成员)吗?
解析:
1.私有成员(属性和方法)
2.构造函数
3.final修饰过的方法,子类不能进行重写

 

3.访问修饰符
public 公有的
private 私有的
protected 受保护的

在Java中public有最高的访问权限

            protected有在同一个包中的访问权限

            private 的访问权限最低只能在本类中使用

 

子类构造机制

//代码执行到黄色部分的代码代表将要执行的代码

1.Main函数

 


2.子类构造,不进入子类构造体

 


3.执行到父类构造,不进入父类构造体

 


4.执行父类构造体 创建父类对象

 


5.回到子类构造体执行

 


6.子类构造体执行完毕 构造子类对象

 


7.回到Main,继续后续代码执行

 

 

base的用法:

base第一个用法:使用属性 base.属性名
base第二个用法;使用方法 base.方法名称相同
base第三个用法:调用父类构造 base()

 

 

 

继承的传递性和单根性
C#中不支持多继承
Java中不支持多继承 使用接口可以变相的支持多继承 
多实现//////////////////变相的多继承 接口

机器语言
汇编语言 底层+++驱动级
面向过程 驱动级++驱动光盘 dll
C#和Java 面向对象 不支持多继承

 

 


 
 

多态初步
多态:多种形态
不同的对象 对于 同一个操作 做出的响应不同 

 

eg:

1. USB父类 USB鼠标/USB键盘/USB照明
2. 鸭子 真实鸭子 /橡皮鸭子 木头鸭子(不会叫)
3. CUT 医生/理发师/演员
4. 打招呼 英文/含于/韩国人
5. 交通工具 汽车/地铁/自行车


父类有一个Cut方法,子类中有同名方法Cut
如何满足多态的条件

父类:Person
子类A:Hairdresser 理发师
子类B:Doctor:医生
子类C:Actor :演员



实现多态条件
1.父类有一个用virtual关键字修饰的方法

2.子类必须有一个同名方法,使用Override关键字

3.将N个子类对象放入父类类型集合。。

4.依次迭代

 

posted @ 2017-03-17 17:22  会飞的豆子  阅读(231)  评论(0编辑  收藏  举报