<strong>第一种:</strong>
/*
* @author mengdexin
* */
class Father{
public static String getName(){
return "Father";
}
}
class Child extends Father{
public static String getName(){
return "Child";
}
}
public class Test extends Father{
public static void main(String[] args) {
Father father = new Father();
Father child = new Child();
System.out.println(father.getName());
System.out.println(child.getName());
}
}
输出:
Father
Father
因为这两个getName都是静态方法,所以内存中的地址是固定的,根本不存在冲突的问题,两个引用都是Father的。
第二种:去掉方法的static,这样就存在override重写(覆盖)现象;出现动态绑定现象。
/*
* @author mengdexin
* */
class Father{
public String getName(){
return "Father";
}
}
class Child extends Father{
public String getName(){
return "Child";
}
}
public class Test extends Father{
public static void main(String[] args) {
Father father = new Father();
Father child = new Child();
System.out.println(father.getName());
System.out.println(child.getName());
}
}
结果:
Father
Child