java 构造器内部的多态方法和行为
16lz
2021-01-22
如果要调用构造器内部的一个动态绑定方法,就要用到那个方法的被覆盖后的定义。然而,这个顶用的效果很难预料,因为被覆盖的方法在对象被完全构造之前就会调用。这一定会造成一些难以发现的错误。
class Base{ private String name = "base"; Base(){ tellName(); printName(name); } public void tellName(){ System.out.println("tellFather "+ name); } public void printName(String name){ System.out.println("printFather "+ name); } } class Drived extends Base{ private String name = "Drived"; Drived(){ tellName(); printName(name); } public void tellName(){ System.out.println("tellChild "+ name); } public void printName(String name){ System.out.println("printChild "+ name); } } public class TestObject { public static void main(String args[]){ new Drived(); } }
更多相关文章
- Eclipse创建的包变成文件夹的解决方法
- java中InputStream中的抽象方法read()为什么可以直接调用?
- 牛客网Java刷题知识点之同步方法和同步代码块的区别(用synchroniz
- android开发 app闪退后fragment重叠bug解决方法,推荐使用第二种方
- 手动配置springMVC4的方法
- 什么案例需要Java中的同步方法访问?
- 请问java中调用一个静态方法()内传入一个对象是表示什么意思?
- 在命令行下编译单个带包名的java类的方法
- Java记录 -88- 利用反射机制调用对象的私有方法和属性