public animal{
String name;
String species;
public introduction(){
System.out.println("Hi, my name is" + name +", i am a " + species);
}
}
public dog extends animal{
String species = "dog";
}我想知道我是否应该用它们独特的species变量来构建更多的子类,比如猫、鸟等。有没有办法让他们根据自己的物种自我介绍不同?
我知道我正在请求一个父类访问一个子类属性,这似乎首先违背了继承的目的,但我不确定有什么更优雅的方式来实现这一点。
发布于 2020-10-21 00:44:34
根据您的animal.class,您似乎已经定义了一个公共成员变量name和species。这显然是子类cat.class和dog.class的一部分
您的父类有语法错误,函数应返回void,如下所示:
public void introduction(){
System.out.println("Hi, my name is" + name +", i am a " + species);
}您的子类将如下所示:
class Cat extends Animal{
public Cat(){
super.name = "tom"
super.species = "cat"
}
}
class Mouse extends Animal{
public Mouse(){
super.name = "jerry" //simply calling name = "jerry" will work as this is inherited.
super.species = "mouse"
}
}注意,我没有子级成员变量,你可以这样调用它们:
Animal cat = new Cat();
Animal mouse = new Mouse();
cat.introduction(); // prints Hi, my name is tom...
mouse.introduction(); //prints Hi, my name is jerry ... 此外,遵循编程指南作为CamelCasing您的类也是一种很好的实践。(用动物代替动物)
https://stackoverflow.com/questions/64449550
复制相似问题