如果我使用的是一个名为“Dog”的类,它扩展了一个名为“Animal”的类,有没有办法让构造函数使用一个带有Animal对象的参数,然后会要求我不要使用超级关键字来存储Animal对象所需的信息?谢谢。Java继承/构造函数
0
A
回答
0
不,因为您想复制原始Animal
。这是因为Dog
是Animal
,您不能传入另一个Animal
并将其作为新对象的“父”。
你应该这样做的方式是在你的父类(动物)中创建一个复制构造函数,该构造函数接受相同类型的对象。
public Animal(Animal other) {
this.field1 = other.field1;
this.field2 = other.field2;
...
}
然后在您的Dog
类,你可以这样做:
public Dog(Dog other) {
super(other);
this.breed = other.breed;
...
}
0
不能自动,没有。
现在Animal
本身可能有(用户创建)“拷贝构造函数”风格的构造函数的Animal
实例,并从中复制领域,你可以在Animal
对象传递给此构造函数做你想做的。
0
如果我使用的是所谓的 “狗” 类
class Dog {
}
和它扩展了一个名为 “动物” 类
class Animal {
}
class Dog extends Animal {
}
是有方式有建设者
class Dog extends Animal {
Dog() {
}
}
时使用的参数是需要一个Animal对象
class Dog extends Animal {
Dog(Animal otherAnimal) {
}
}
,然后要求我不要用
super
关键字
↑↑↑↑没有使用super
关键字以上代码↑↑↑↑
要存储一个Animal对象所需的信息吗?
class Dog extends Animal {
Animal otherAnimal;
Dog(Animal otherAnimal) {
this.otherAnimal = otherAnimal;
}
}
信息存储,仍然没有使用super
关键字。
相关问题
- 1. Java继承 - 构造函数
- 2. Java构造函数继承?
- 3. 在java中调用继承构造函数的构造函数
- 4. Java Rest构造函数继承
- 5. Java的继承与构造函数
- 6. Java - 继承与构造函数错误
- 7. Java:继承构造函数到子类
- 8. Java复制构造函数和继承
- 9. 私有构造函数和继承(Java)
- 10. 继承非构造函数
- 11. 构造函数和继承
- 12. 构造函数和继承?
- 13. 构造函数和继承
- 14. 构造函数继承
- 15. C#继承构造函数
- 16. 删除复制构造函数break继承构造函数
- 17. 继承构造函数和默认构造函数
- 18. 的Java:继承构造
- 19. 可变参数构造函数继承
- 20. 构造函数参数和继承
- 21. CoffeeScript,原型继承和构造函数
- 22. C中的继承和构造函数#
- 23. 实例化继承构造函数
- 24. 构造函数继承自我python
- 25. C++只继承公共构造函数
- 26. C#基础构造函数继承
- 27. 移动构造函数和继承
- 28. 构造函数继承问题
- 29. 静态构造函数和继承
- 30. 继承类和构造函数
感谢您的信息! – Cresyls
很高兴我帮助了!如果这是答案,随时标记为:) – ACVM