黑马程序员-接口和多态
来源:互联网 发布:离婚率数据 编辑:程序博客网 时间:2024/06/08 17:46
接口:
特点:
1,对外提供的规则。
2,给程序提供了功能扩展。
3,降低了耦合性。
狭义的理解:就是指java中的interface。
广义的理解:凡是对外暴露的都是可以理解为接口。
在程序中的体现:
接口使用interface关键字来定义。
接口中常见的成员:
全局常量:public static final
抽象方法:public abstract
这些成员都有固定的修饰符。
接口中的成员都是公共的。
注意:接口中的方法是public修饰,被覆盖时,子类权限也必须public。
接口是不可以实例化的,需要子类覆盖了所有的抽象方法后,才可以实例化。
否则,该子类就是一个抽象类。
子类与接口之间是一个实现关系。
interface Inter
{
public void show();
}
class InterImpl implements Inter
{
public void show(){}
}
接口的出现可以进行多实现,是java对多继承进行改良。
一个类在继承一个类的同时,可是实现多个接口。
接口的出现避免了单继承的局限性。
关系:
类与类之间是继承关系。
类与接口之间是实现关系。
接口与接口之间是继承关系,而且可以多继承。
抽象类与接口:
1,抽象类可以定义抽象方法和非抽象方法。
接口中只能定义抽象方法。
2,抽象类只能单继承,接口可以被多实现。
3,抽象类中定义的共性的基本内容。
而接口中定义的的事物的扩展功能。
------------------------------
多态:
所指多态就是对象的多态性。
当类与类之间产生了关系后,
对象就不仅仅是一种形态,而是有了多种形态。
class 动物
{
}
class 猫 extends 动物
{
}
//猫 x = new 猫();
动物 x = new 猫();
多态的代码体现:父类或者接口的引用指向了其子类对象。或者接收了其子类对象。
多态的好处:给程序提高了扩展性。
多态的弊端:只能通过父类的引用调用共性的内容。不能使用子类特有的内容。
多态的前提:
1,类与类之间必须有关系。
2,必须有覆盖操作。
动物 x = new 猫();//向上转型。猫对象就提升为了动物类型。
x只能使用动物中的成员。
猫 y = (猫)x;//向下转型。
y就可以使用猫中的所有成员包括着动物中的成员。
自始至终都是子类对象在做着类型变化。
多态在成员中变化:
1,成员变量:
class Fu
{
//int num = 4;
}
class Zi extends Fu
{
int num = 5;
}
class Main
{
public static void main(String[] args)
{
Fu f = new Zi();
sop(f.num);//4;
}
}
Fu f = new Zi();
f.num ;//运行父类的num。
f.show()//调用了非静态show方法。运行是子类的show方法。
f.staticShow();//调用了静态的show方法。运行 Fu类中的staticShow方法。
对于成员变量,和static成员函数:
编译的时期:
参考的是引用型变量所属的类中是否有被调用的成员。
运行的时期:
参考的也是引用型变量所属的类的成员。
简单说编译和运行都看左边。
对于非静态的成员函数:
编译时期:
参考的是引用型变量所属的类中是否有被调用的成员。
运行时期:
参考的是对象所属的类中是否有调用的成员。
因为函数有一个覆盖特性。
简单说就是:编译看左边,运行看右边。
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima- 黑马程序员-接口和多态
- 黑马程序员--接口和多态
- 黑马程序员:java学习笔记-接口和多态
- 黑马程序员-面向对象-接口和多态
- 黑马程序员---面向对象:继承、抽象、接口和多态
- 黑马程序员java学习—接口和多态
- 黑马程序员————接口和多态
- 黑马程序员——Java基础---接口和多态
- 黑马程序员——接口和多态
- 黑马程序员—接口实现多态
- 黑马程序员----接口与多态
- 黑马程序员_接口与多态
- 黑马程序员-继承、接口与多态
- 黑马程序员----Comparable接口和Comparator接口
- 黑马程序员@面向对象之多态和接口
- 黑马程序员-java学习继承之抽象类、多态和接口
- 黑马程序员-面向对象复习3(多态和接口)
- 黑马程序员_java面向对象总结【3】(继承、接口和多态)
- 编辑框输入不合法时保持原有的值的做法
- 寻求高手帮助解决sql问题
- ASIHTTPRequest系列(二):文件下载
- 关于类的继承后基类在派生类中访问方式的改变
- ASIHTTPRequest系列(三):文件上传
- 黑马程序员-接口和多态
- zigbee学习笔记——四种地址绑定模式
- 使用递归的方法求next值来理解KMP算法(待继)
- ASIHTTPRequest系列(四):Cookies
- ASIHTTPRequest系列(四):Cookies
- 123
- 各大主流的虚拟机比较
- 问题小结(7)-sd卡和/data分区使用情况检测
- dm9000AE调试记录