1.优点
- 提高了代码的维护性(继承保证)
- 提高了代码的扩展性(由多态保证)
- 不能访问子类特有的成员变量和成员方法
解决方法:把父类的引用强制转换为子类的引用。(向下转型)
案例演示
public class MyTest {
public static void main(String[] args) {
Fu fu = new Zi();
System.out.println(fu.a);
//System.out.println(fu.num);报错,多态中无法访问子类独有的成员变量
//fu.test();报错,多态中无法访问子类独有的成员方法
//那么,我们就想要访问子类独有的成员怎么办呢?我们可以向下转型
Zi zi= (Zi) fu; //向下转型 将Fu类的对象fu强行向下转型为Zi类对象zi
System.out.println(zi.num);
zi.test();
}
}
class Fu{
int a=10;
}
class Zi extends Fu{
int num=20;
public void test(){
System.out.println("子类一个特有的方法");
}
}