黑马程序员

导航

黑马程序员——java语言——多态

---------------------- android培训java培训、期待与您交流! ---------------------- .

   多态(Polymorphism)

多态:可以理解为事物存在的多种体现形态。

1,多态的体现

       父类的引用指向了自己的子类对象。

       父类的引用也可以接收自己的子类对象。

2,多态的前提

       必须是类与类之间有关系。要么继承,要么实现。

       通常还有一个前提:存在覆盖。

3,多态的好处

       多态的出现大大的提高程序的扩展性。

4,多态的弊端:

       提高了扩展性,但是只能使用父类的引用访问父类中的成员。

5,多态的应用

6,多态的出现代码中的特点(多态使用的注意事项)

       在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。

       在运行时期:参阅对象所属的类中是否有调用的方法。

       简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。

 

Implements————

 是一个类实现一个接口用的关键字,他是用来实现接口中定义的抽象方法。

  还有几点需要注意:

  (1)接口可以被多重implements,抽象类只能被单一extends

  (2)接口只有定义,抽象类可以有定义和实现

(3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)

       Extends的区别————

        extends可以实现父类,也可以调用父类初始化 this.parent()。而且会覆盖父类定义的变量或者函数。这样的好处就是:架构师定义好接口,让工程师实现就可以了。整个项目开发效率得到提高,且开发成本大大降低。

      implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。

       两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改implements,只定义接口需要具体实现,或者可以被修改扩展性好,用extends

 

Object:

是所有对象的直接后者间接父类,传说中的上帝。

该类中定义的肯定是所有对象都具备的功能。

Object类中已经提供了对对象是否相同的比较方法。

 

如果自定义类中也有比较相同的功能,没有必要重新定义。

只要沿袭父类中的功能,建立自己特有比较内容即可。这就是覆盖。

 

 

 

---------------------- android培训java培训、期待与您交流! ---------------------- .

posted on 2012-04-07 20:37  黑马—jieqi  阅读(398)  评论(0编辑  收藏  举报