黑马程序员技术交流社区

标题: 多态之两态 [打印本页]

作者: O_o”    时间: 2013-8-10 23:36
标题: 多态之两态
本帖最后由 O_o” 于 2013-8-11 20:12 编辑

多态:就是一个对象能够表现出多种的类型(状态)实现多态的三个手段:虚方法、抽象类、接口 使用虚方法来实现多态 第一步:将父类中的方法标记为virturl 第二部:将子类的方法标记为override 表示重写父类的方法
对于父类中的方法  你不知道该如何实现的时候  你可以考虑把这个父类写成抽像 抽象  语法:在类的前面标记为abstract 标记当前这个类是抽象类 类中的成员用abstract修饰,表示抽象成员。 当你把抽象类中的方法标记为抽象方法的时候  那么这个抽象方法中不允许有方法体


接口是一种规范。
只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员

为了多态。
接口不能被实例化。
也就是说,接口不能new(不能创建对象)



接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。


(默认为public)
接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。



接口中只能有方法、属性、索引器、事件,不能有“字段”。

接口与接口之间可以继承,并且可以多继承。

接口并不能去继承一个类,而类可以继承接口


实现接口的子类必须实现该接口的全部成员。


一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。


class MyClass:A,IA{},因为类是单继承的。


显示实现接口的目的:解决方法的重名问题
什么时候显示的去实现接口:
当继承的借口中的方法和参数一摸一样的时候,要是用显示的实现接口



当一个抽象类实现接口的时候,如果不想把接口中的成员实现,可以把该成员实现为abstract。(抽象类也能实现接口,用abstrac标记)
“显示实现接口”,只能通过接口变量来调用(因为显示实现接口后成员为private)。



作者: 许庭洲    时间: 2013-8-11 06:16
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2