标题: 创建子类对象时,父类构造函数中调用被子类重写的方法 [打印本页] 作者: yijincheng 时间: 2016-3-18 22:48 标题: 创建子类对象时,父类构造函数中调用被子类重写的方法 但是不会调用被子类重载的方法。
例:
public class Basic{
public void add(int i)
{
System.out.println("Basic add");
}
public Basic()
{
add('a');
}
}
public class A extends Basic{
public void add(int i)
{
System.out.println("A add");
}
}
public class B extends Basic{
public void add(char i)
{
System.out.println("B add");
}
}
public class Main{
public static void main(String[] args)
{
A a = new A();
B b = new B();
}
} 作者: 就是我 时间: 2016-3-19 10:14
感觉可以试着理解下,重载和重写的概念
重载:是多重载入的意思,就是说加载了很多种类,根据你的参数类型,需要哪个调用哪个
就是说,子类重载了父类的方法,子类中实际上会存在两个名称相同,参数不同的方法,(都存在,根据参数调用)
重写:是改写的意思,在子类中,父类的该方法已经被覆盖掉,不存在了.
你直接创建子类引用指向子类对象,无论编译还是运行,看的都是子类