黑马程序员-接口和多态

来源:互联网 发布:离婚率数据 编辑:程序博客网 时间:2024/06/08 17:46
---------------------- android培训、java培训、期待与您交流! ----------------------

接口:
 特点:
  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
原创粉丝点击