黑马程序员技术交流社区
标题:
多态之两态
[打印本页]
作者:
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