黑马程序员技术交流社区

标题: 继承的问题 [打印本页]

作者: 饥渴ing    时间: 2014-5-25 10:25
标题: 继承的问题
本帖最后由 饥渴ing 于 2014-5-25 10:44 编辑

public static void main(String[] args) {
  T1 tt = new T1();
  T1 tt1 = new T1();
//这时创建了几个T对象啊?
}

class T {
public T() {
  System.out.println("T");
}
}

class T1 extends T {
public T1() {
  super();
  System.out.println("T1");
}
}

作者: shi980088    时间: 2014-5-25 10:28
这是创建T1对象,不创建T对象,只是在创建T1对象的时候默认调用他父类也就是T对象的空参构造方法而已
作者: 宋大人-专注    时间: 2014-5-25 10:35
当然是两个了,只要是用new开辟一个空间就创建一个对象
作者: hamiguadjs    时间: 2014-5-25 10:37
       我觉着这问题和你的名字一样饥渴;P,概念的东西重在理解。下面我给你说明一下啊:
  1. class HeiMa {
  2.         public static void main(String[] args) {
  3.                  T1 tt = new T1();   //创建了子类T1对象tt
  4.                  T1 tt1 = new T1();  //创建了子类T1对象tt1
  5.                 /*
  6.                 这时创建了几个T对象啊? 创建了类T1的两个对象,
  7.                 没有创建父类T的对象,只是子类继承父类,可以调
  8.                 用父类中非私有的成员。
  9.                 */
  10.         }
  11. }
  12. //定义了父类T
  13. class T {
  14.         public T() {
  15.                 System.out.println("T");
  16.         }
  17. }
  18. //定义了子类T1,并继承父类T
  19. class T1 extends T {
  20.         public T1() {
  21.                 super();
  22.                 System.out.println("T1");
  23.         }
  24. }
复制代码

作者: 饥渴ing    时间: 2014-5-25 10:42
shi980088 发表于 2014-5-25 10:28
这是创建T1对象,不创建T对象,只是在创建T1对象的时候默认调用他父类也就是T对象的空参构造方法而已 ...

谢谢了!
作者: 相濡、彼岸    时间: 2014-5-25 10:50
只要new一次,就是一个新对象!
作者: 何堂红    时间: 2014-5-25 11:27
hamiguadjs 发表于 2014-5-25 10:37
我觉着这问题和你的名字一样饥渴,概念的东西重在理解。下面我给你说明一下啊:
...

清晰的代码解释,一目了然:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2