黑马程序员技术交流社区

标题: 有关抽象类中有关构造函数和其不能建立对象的困惑 [打印本页]

作者: 静以修身    时间: 2013-8-17 21:00
标题: 有关抽象类中有关构造函数和其不能建立对象的困惑
本帖最后由 静以修身 于 2013-8-17 22:50 编辑

抽象类中是否有构造函数?有,是用于给对象进行初始化的。想问能进行初始化,但不能建立对象,是已经
固定了的规则么,其原理是怎样的啊?


作者: 张洪慊    时间: 2013-8-17 21:12
本帖最后由 张洪慊 于 2013-8-17 21:24 编辑

<div class="blockcode"><blockquote>
例如:我简单的想到:抽象类的构造函数也可以用于初始化子类的成员属性
abstract class Animal{
  private  String animalName;
  protected Animal(String animalName){
   this.animalName=animalName;
  }
}
class Dog extends Animal{

private String dogName;  

public Dog(String animalName){     

  super(dogName);   

}

}
</blockquote></div><br />
作者: 静以修身    时间: 2013-8-17 22:19
张洪慊 发表于 2013-8-17 21:12
例如:我简单的想到:抽象类的构造函数也可以用于初始化子类的成员属性
abstract class Animal{
  private   ...

抽线类的构造函数只能初始化自己的属性吧!super(dogName),初始化的是从父类继承过来的属性animalName,而不是初始化子类的属性,初始化子类的属性应该在父类的构造函数下面再加上一句this.dogName=dogName,应该是这样的吧





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