【发布时间】:2017-09-16 07:55:45
【问题描述】:
下面的程序打印 ParentClass a() -
public class StaticBindingTest {
public static void main(String[] args) {
ParentClass p = new ChildClass();
p.a("abc");
}
}
class ParentClass{
public void a(Object o){
System.out.println("ParentClass a()");
}
}
class ChildClass extends ParentClass{
public void a(String s){
System.out.println("ChildClass a()");
}
}
但是,如果我将 ParentClass a() 更改为接受 String,则程序会打印 Childclass a()。为什么? -
package com.my.test;
public class StaticBindingTest {
public static void main(String[] args) {
ParentClass p = new ChildClass();
p.a("abc");
}
}
class ParentClass{
public void a(String o){
System.out.println("ParentClass a()");
}
}
class ChildClass extends ParentClass{
public void a(String s){
System.out.println("ChildClass a()");
}
}
【问题讨论】:
标签: java binding static overriding overloading