抽象类
当多个类中出现相同功能,但功能主体不同
这是可以进行向上抽取,这时,只能抽取功能定义,而不抽取功能主体。
抽象:看不懂。
抽象类的特点:
1, 抽象方法一定定义在抽象类中;
2, 抽象方法和抽象类都必须被abstract关键字修饰
3, 抽象类不能用new创建对象,因为调用抽象方法没意义
4, 抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用。
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
接口
接口:初期理解,可以认为是一个特殊的抽象类。
当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。
class用于定义类
interface用于定义接口
接口定义时,格式特点:
1, 接口中常见定义:常量,抽象方法。
2, 接口中的成员都有固定修饰符
常量:public static final
方法:public abstract
记住:接口中的成员都是public的
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化,否则子类是一个抽象类。
接口的特点:
1, 接口是对外暴露的规则,
2, 接口是程序的功能扩展
3, 接口可以用来多实现
4, 类与接口之间是实现关系,而且类可以继承一个类的同时实现多接口
5, 接口与接口可以有继承关系。
多态
定义:某一类事物的多种存在形态。
可以理解为事物存在的多种体现形态。
1、 多态的体现
父类的引用指向了自己的子类对象。
父类的引用也可以接受自己的子类对象。
2、 多态的前提
必须是类与类之间有关系,要么继承,要么实现。
通常还有一个前提:存在覆盖。
3、 多态的好处
多态的出现大大的提高了程序的扩展性。
4、 多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员。
5、多态的应用
6、多态的出现代码中的特点(多态使用的注意事项)
第二个问题:如何特有方调特有用法? 注:类型提升 向下(上)转型
强制将父类的引用,转成子类类型
我们千万不能讲父类对象转成子类类型。
我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。多态自始自终都是子类对象在做着变化。
instanceof
在多态中:成员函数的特点:
在编译期间:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有,编译失败。
在运行时期,参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边。(引用型变量所属的类)
在多态中,静态成员函数的特点:
无论编译和运行,都参考右边。
---------------------- android培训、 java培训、期待与您交流! ----------------------详细请查看: http://edu.youkuaiyun.com/heima