如果要调用构造器内部的一个动态绑定方法,就要用到那个方法的被覆盖后的定义。然而,这个顶用的效果很难预料,因为被覆盖的方法在对象被完全构造之前就会调用。这一定会造成一些难以发现的错误。

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(); 
 
  } 
}

更多相关文章

  1. Eclipse创建的包变成文件夹的解决方法
  2. java中InputStream中的抽象方法read()为什么可以直接调用?
  3. 牛客网Java刷题知识点之同步方法和同步代码块的区别(用synchroniz
  4. android开发 app闪退后fragment重叠bug解决方法,推荐使用第二种方
  5. 手动配置springMVC4的方法
  6. 什么案例需要Java中的同步方法访问?
  7. 请问java中调用一个静态方法()内传入一个对象是表示什么意思?
  8. 在命令行下编译单个带包名的java类的方法
  9. Java记录 -88- 利用反射机制调用对象的私有方法和属性

随机推荐

  1. Zabbix5.0服务端和客户端安装
  2. MySQL 百万级数据分页查询及优化
  3. 【开发者必看】2020年移动应用趋势洞察白
  4. Redis系列5-实现简单消息队列
  5. Redis系列6 - Redis事务
  6. Redis系列二 rdb 和 aof 持久化的区别
  7. Java Volatile Atomic关键字
  8. Redis系列七 - 实现排行榜功能
  9. 一篇文章让您了解HTTPS
  10. 快速用ELK搭建日志收集平台