我正在做一个关于继承和多态性的练习,我有3个独立的分支,我的主类,一个超级动物类和一个子猫类。我已经在Animal和Cat类中制作了重载构造函数,getters和setters以及toString()方法。我想我有继承部分。现在我需要创建2个动物对象引用,两者都是Cat的实例,例如:一个是名为Tobbie的Siamese类型。
有人能给我一个这些对象引用的例子吗?您可以看到我在那里的Main类中尝试过,但我不确定这是否正确。
这是我目前上的三门不同的课。
public class Hw02 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Animal Siamese = new Cat("Tobbie");
}
}
这是我的动物课。
public class Animal {
private String name;
public Animal() {
this("na");
}
public Animal(String name) {
this.name = name;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Animal{"
+ "name="
+ name
+ '}';
}
}
这是我的猫课。
public class Cat extends Animal {
private String type;
public Cat() {
}
public Cat(String type) {
this.type = type;
}
public Cat(String type, String name) {
this.type = type;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "Cat{"
+ "type="
+ type
+ '}';
}
}
使用上面的代码,这是一个示例:
Animal animal0 = new Cat("Siamese", "Bob");
Animal animal1 = new Cat("Tomcat", "Frank");
Animal animal2 = new Cat("Tomcat", "George");
Animal animal3 = new Animal("Elephant");
System.out.print(animal0.toString());
System.out.print(animal1.toString());
System.out.print(animal2.toString());
System.out.print(animal3.toString());
将产生输出:
Cat{type=Siamese}
Cat{type=Tomcat}
Cat{type=Tomcat}
Animal{name=Elephant}
// in main method
Animal tobbie = new Cat("siamese", "Tobbie")
Animal jackie = new Cat("tomcat", "Jackie")
// in Cat class
public Cat(String type, String name) {
super(name)
this.type = type;
}
一些评论:
编辑:像这样:
Animal animal = new Animal("What am I?")
但是,我不认为这样做是一个好的做法,也许你想做的事情最好实现。
编辑:
猫toString():
public String toString() {
return super.toString() + " Cat{type=" + type + "}";
}
我只是在尝试学习如何将基于intellij构建的java应用程序打包并安装到PC上。 我使用“C:\ProgramFiles(x86)\OpenJava\openjdk-15.0.2\U windows-x64\U bin\jdk-15.0.2”在intellij中构建了hello world,并在开发环境中运行。 如果我理解Launch4j,我可以在JRE选项卡中指定捆绑的JRE,这样我就不依赖
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self):
在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self):
问题内容: 试图获得公司名单,但这给了我一个错误。 例外: 我的文件包含: 当我要添加新的工作订单时,select中应该有可用的公司列表。 更新: 这是我的方法 : 问题答案: JSP包含操作返回的选择标记。添加订单时,它应该具有绑定到bean属性的属性。它应该是值堆栈中的一个对象。 在大多数情况下,最好在操作类中初始化该属性,以更好地实现必须编写方法和初始化列表的位置。 因为标签的属性不能为引发
在面向对象编程中,当我们已经创建了一个类,而又想再创建一个与之相似的类,比如添加几个方法,或者修改原来的方法,这时我们不必从头开始,可以从原来的类派生出一个新的类,我们把原来的类称为父类或基类,而派生出的类称为子类,子类继承了父类的所有数据和方法。 让我们看一个简单的例子,首先我们定义一个 Animal 类: class Animal(object): def __init__(self,
问题内容: 假设我有两个班级:动物和狗。狗是动物的子类。我执行以下代码: 现在,我可以通过a变量来调用Dog类的方法。 但是我的问题是:如果我可以通过Dog对象(继承性)调用Animal的所有方法,那么为什么要使用多态原理呢?我可以声明: 通过此声明,可以使用所有Animal方法和Dog方法。那么为什么要使用多态呢?非常感谢您的回答。 问题答案: 在Java中,多态和继承的概念被“焊接在一起”。通