gpt4 book ai didi

Java 继承和变量

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:19 24 4
gpt4 key购买 nike

我知道这是非常基础的,但我无法用不熟悉的语言将各个部分组合在一起。我正在将 UML 映射到 Java 代码中,继承让我很困惑。我有一个这样的 ERD:

Animal
----------------------------
-color: int
-weight: int
----------------------------
+ getColor() : int
+ getWeight(): int
----------------------------
^(Inheritance Triangle)
|
|
----------------------------
Dog
----------------------------
-breed: string
----------------------------
+ getBreed()
----------------------------

所以狗当然是动物,我可以从狗类调用 getColor 等。我的问题是关于变量,特别是构造函数。当我实现这个时,我有

public class Animal 
{
private int color;
private int weight;

public Animal(int c, int w)
{
color = c;
weight = w;
}
...
}

public class Dog extends Animal
{
private string breed;

public Dog()
{
breed = "Shelty";
}
}

我的问题是,在狗类中使用颜色和重量的正确方法是什么?查看 UML,我知道我可以在狗实体中添加颜色和重量,但我知道这是可选的。我还会在 dog 类中拥有私有(private)颜色和重量属性吗?我会调用 Animal 构造函数(它会抛出错误)吗?这里的正确形式是什么?

最佳答案

Dog 类的职责应该是初始化它添加的任何 功能,并让父类(super class)初始化Dog 的所有属性类继承了。

你可以这样做:

public class Dog extends Animal
{
private String breed;

public Dog(int color, int weight, String breed)
{
super(color,weight); //let superclass initialize these.
this.breed = breed;
}
}

关于Java 继承和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22164716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com