package tex2polymorphism;
/*总结如下:
* 对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”重写“了父类中的变量,那么在编译时会报错。
*/
public class 向上转型 {
public static void main(String[] args)
{
Father s = new Son();
s.f();
//报错,因为子类中重新定义了跟父类中一样的变量,而变量是不能重写的,所以报错 s.name;
/*s.f2();编译不通过 我们现在创建的是父类的引用指向子类Son的对象。
* 子类中定义的方法f2在父类中不存在,所以用这父类的引用去调用他没有的方法是错误的。
*/
}
}
class Father{
String name="父";
void f(){System.out.print("父类");}
}
class Son extends Father{
String name = "儿子";
void f(){System.out.print("儿子");}
void f2(){}
}
标签:知识点,调用,java,子类,void,报错,收录,父类,重写 From: https://www.cnblogs.com/polymorphism-1/p/15719778.html