黑马程序员技术交流社区
标题:
多态问题
[打印本页]
作者:
丁倩
时间:
2011-8-6 15:21
标题:
多态问题
public class Test3 {
public static void main(String[] args) {
Parent c = new Child();
System.out.println(c.getName());
}
}
class Parent {
public static String getName() {
return "Parrent";
}
}
class Child extends Parent {
public static String getName() {
return "child";
}
}
复制代码
打印的结果是parent,难道加了static以后就不能实现多态了?
作者:
匿名
时间:
2011-8-6 15:56
静态方法是在编译的时候把静态方法和类的引用类型进行匹配,而不是在运行的时候和类引用进行匹配。因此当我们在子类中创建的静态方法,它并不会覆盖父类中相同名字的静态方法。所以结果是parent.
作者:
匿名
时间:
2011-8-6 16:27
static 定义的方法属于这个类,由于是类的方法,它可以直接引用类名来引用方法,也可以通过类的对象来引用这个方法,既不能被子类覆盖,也不能被子类继承。简单的说,它是在编译的时候就和类绑定在一起了,不能被运行时动态加载。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2