如果我使用的是一个名为“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. 构造函数和继承
- 8. 构造函数和继承
- 9. 继承非构造函数
- 10. 构造函数继承
- 11. 构造函数和继承?
- 12. 删除复制构造函数break继承构造函数
- 13. 的Java:继承构造
- 14. 继承虚基类的构造函数
- 15. 约构造函数调用和继承
- 16. C++只继承公共构造函数
- 17. 构造函数继承自我python
- 18. 继承Python和构造函数调用
- 19. 命名构造函数和继承
- 20. 从超类继承构造函数?
- 21. TypeScript类继承构造函数混淆
- 22. 继承和基础构造函数
- 23. Scala:继承中的构造函数
- 24. 实例化继承构造函数
- 25. C++继承和构造函数
- 26. 移动构造函数和继承
- 27. C#基础构造函数继承
- 28. C++继承类的构造函数
- 29. 继承的泛型构造函数C#
- 30. 继承和显式构造函数?
感谢您的信息! – Cresyls
很高兴我帮助了!如果这是答案,随时标记为:) – ACVM