1.对象的多种形态
(1).引用多态
父类的引用可以指向本类的对象
父类的引用可以指向子类的对象
(2).方法多态
创建本类对象时,调用的方法为本类的方法
创建子类对象时,调用的方法为子类重写的方法或子类继承的方法。
不能通过父类的引用调用子类的方法
2.多态的引用类型转换
(1)向上类型转换(隐式/自动类型转换),是小类型到大类型的转换。--无风险
(2)向下类型转换(强制类型转换),是大类型到小类型的转换。--有风险
(3)instances运算符,来解决引用对象的类型,避免类型转换的安全问题
3.Java中的抽象类
(1)使用abstract关键字修饰
(2)a.在某些情况下,某个父类只是知道子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。
b.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模版,从而避免了子类设计的随意性。
(3)作用:限制规定子类必须实现某些方法,但不关注实现细节。
(4)使用规则:
a.abstract定义抽象类
b.abstract定义抽象方法,只有声明,不需要实现
c.包含抽象方法的类是抽象类
d.抽象类中可以包含普通方法,也可以没有抽象方法
e.抽象类不能直接创建,可以定义引用变量
eg:
//定义一个抽象类
public abstract class Telphone {
//定义抽象类中的抽象方法
public abstract void call();
public abstract void message();
}
当创建这个类的子类的时候,会自动生成这两个抽象方法