黑马程序员-面向对象复习3(多态和接口)
来源:互联网 发布:手机画漫画的软件 编辑:程序博客网 时间:2024/06/05 20:10
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
多态即父类通过调用同名方法来呈现子类特性的性质,我们还是来看一个例子:
class 动物{
public virtual void 叫(){
//此处为空
}
}
class 猫:动物{
public override void 叫(){
console.writeline("猫是喵喵叫,喵喵~");
}
}
class 鸭子:动物{
public override void 叫(){
console.writeline("鸭子是嘎嘎叫,嘎嘎~");
}
}
动物:动物1=new 猫();
动物1.叫();
动物:动物2=new 鸭子();
动物2.叫();
输出结果一个是猫叫,一个是鸭子叫,我们执行的是父类的方法,却根据不同的子类产生了不同的结果,这就叫做多态,关键点在于用子类去实例化父类的引用。再比如说一个事件,比如上课铃响起来了,不同的人会有不同的反应,老师会站在讲台上开始上课,学生会坐着听课,这就是多态在现实生活中的反应
多态是面向对象编程的核心概念,它使得程序员把关注点放在不同对象的关系上,而不关注父类和子类方法的具体区别,可以使得程序更加规范和简洁。
下面复习接口和接口多态:
接口就是一个类必须要完成的方法,它标示了这个类能做什么,接口中不能定义字段,而只有方法,接口 中的方法只有声明,类一旦继承了一个接口,就必须完全的实现这个接口中的所有方法:
interface 猫能做的事{
void 爬树();
void 抓老鼠();
void 舔毛();
}
class 猫:动物,猫能做的事{
void 爬树(){
...
};
void 抓老鼠(){
...
};
void 舔毛(){
...
};
public override void 叫(){
console.writeline("猫是喵喵叫,喵喵~");
}
}
猫实现了"猫能做什么"这个接口中所有的方法,它的子类例如“波斯猫”也将继承这些方法,接口中所有的方法都强制为公共,访问修饰符对其无效接口的意义:
接口为类提供了一套统一规范的方法,如在最高层的父类中继承这些接口,那么其下的任何一个子类都继承这些接口,这就如同学校的校规一样,所有老师和学生都必须遵守,都要按照校规中所规定的来做事,下面我们把接口和多态结合起来看一下:
interface 猫能做的事{
void 爬树();
void 抓老鼠();
void 舔毛();
}
class 猫:动物,猫能做的事{
void 爬树(){
...
};
void 抓老鼠(){
...
};
void 舔毛(){
...
};
public override void 叫(){
console.writeline("猫是喵喵叫,喵喵~");
}
}
猫能做的事 p1=new 猫();接口相当于其继承的子类的父类,如果我们用子类来实例化一个接口,那么会有这样的效果:子类中除了接口中声明的方法,其他在子类中额外添加的方法都无法访问
这就叫做接口的多态,通过这种方法,可以为所有相似的类制定一套统一的方法规范,再操作时按照统一的规范进行操作
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
- 黑马程序员-面向对象复习3(多态和接口)
- 黑马程序员_java面向对象总结【3】(继承、接口和多态)
- 黑马程序员-面向对象-接口和多态
- 黑马程序员---面向对象:继承、抽象、接口和多态
- 黑马程序员-面向对象复习
- 黑马程序员——Java面向对象之二(接口和多态 )
- 黑马程序员 面向对象(二)继承、接口、多态和异常
- 黑马程序员@面向对象之多态和接口
- 黑马程序员 面向对象 接口
- 黑马程序员_面向对象Part2 继承多态和接口
- 黑马程序员-面向对象基本知识复习(1)
- 黑马程序员----【javaSE基础】复习--面向对象
- 黑马程序员-面向对象复习2
- 黑马程序员---面向对象的复习
- 黑马程序员_面向对象之继承和接口
- 黑马程序员--面向对象之三:抽象类和接口
- 黑马程序员_java面向对象_抽象类和接口
- 黑马程序员——Java 基础 面向对象之多态 (复习)
- 【Linux】虚拟机增加硬盘
- 【Linux】/etc/fatab文件解释
- 【Oracle】监听动态注册与静态注册
- 【Oracle】ORACLE10.2.0.1升级升级ORACLE11G
- 程序员技术练级攻略
- 黑马程序员-面向对象复习3(多态和接口)
- javascript中作用域与关键字this
- keil4中生成bin文件的方法
- 高人博客
- c/c++通过socket发送结构体
- Windows XP 常见的进程列表
- 实战DeviceIoControl 之一:通过API访问设备驱动程序
- neural networks
- 写给新手程序员的一封信