首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用子类属性的Java父类

使用子类属性的Java父类
EN

Stack Overflow用户
提问于 2020-10-21 00:34:50
回答 1查看 962关注 0票数 0
代码语言:javascript
复制
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变量来构建更多的子类,比如猫、鸟等。有没有办法让他们根据自己的物种自我介绍不同?

我知道我正在请求一个父类访问一个子类属性,这似乎首先违背了继承的目的,但我不确定有什么更优雅的方式来实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2020-10-21 00:44:34

根据您的animal.class,您似乎已经定义了一个公共成员变量namespecies。这显然是子类cat.classdog.class的一部分

您的父类有语法错误,函数应返回void,如下所示:

代码语言:javascript
复制
public void introduction(){
       System.out.println("Hi, my name is" + name +", i am a " + species);
}

您的子类将如下所示:

代码语言:javascript
复制
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"
  }

}

注意,我没有子级成员变量,你可以这样调用它们:

代码语言:javascript
复制
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您的类也是一种很好的实践。(用动物代替动物)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64449550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档