Java 如何编写面向对象的程序,用超类、子类和接口实例化对象和接口
在学校里,我被问到这样一个问题: 前言:在OOP中,当类的对象被创建时,类被实例化。分析下面的图1并用它回答以下问题 使用继承和接口的概念,生成类、对象和/或接口的列表,指出: 一,。是/是基类、父类或超类。答案是动物类 二,。是/是派生的、子类、子类。答案是鸟类、爬行动物和鱼类 iii.is/are接口。这个问题的答案是“不要飞”的苍蝇或“会酸高”的苍蝇 四、实现继承的关键字。答案是“扩展” v用于实现接口的关键字。答案是:工具 b) 使用上面的答案,创建一个Java OOP程序,该程序实例化所需的对象并调用它们的相关方法 对于这个问题,我能够编写以下代码:Java 如何编写面向对象的程序,用超类、子类和接口实例化对象和接口,java,object,inheritance,Java,Object,Inheritance,在学校里,我被问到这样一个问题: 前言:在OOP中,当类的对象被创建时,类被实例化。分析下面的图1并用它回答以下问题 使用继承和接口的概念,生成类、对象和/或接口的列表,指出: 一,。是/是基类、父类或超类。答案是动物类 二,。是/是派生的、子类、子类。答案是鸟类、爬行动物和鱼类 iii.is/are接口。这个问题的答案是“不要飞”的苍蝇或“会酸高”的苍蝇 四、实现继承的关键字。答案是“扩展” v用于实现接口的关键字。答案是:工具 b) 使用上面的答案,创建一个Java OOP程序,该程序实例
public class Animal {
public class Animal {
// Properties gender, age, weight
public String gender;
public String age;
public String weight;
// Constructor to inherit for other classes
Animal(String gender, String age, String weight) {
this.gender = gender;
this.age = age;
this.weight = weight;
}
// Methods to inherit
public void sleep() {
System.out.println("Animal can sleep");
}
public void move() {
System.out.println("Animal can move");
}
public void eat() {
System.out.println("Animal can eat");
}
}
//Bird class inherits Animal
class Bird extends Animal {
Bird(String gender, String age, String weight) {
super(gender, age, weight);
}
}
//Reptile Class inherits Animal
class Reptile extends Animal {
Reptile(String gender, String age, String weight) {
super(gender, age, weight);
}
public void leap() {
System.out.println("Frog can leap");
}
Reptile Frog = new Reptile("Male", "1yr", "1kg");
}
//Fish Class inherits Animal
class Fish extends Animal {
Fish(String gender, String age, String weight) {
super(gender, age, weight);
}
Fish Shark = new Fish("Male", "3yrs", "150kg");
}
// Interface Fly
interface abilityToFly {
public void Fly();
}
//Eagle inherits Bird and uses fly ability
class Eagle extends Bird implements abilityToFly {
Eagle(String gender, String age, String weight) {
super("Female", "2yrs", "2kg");
}
@Override
public void Fly() {
System.out.println("It can Fly");
}
}
//Chicken inherits Bird but does not have the ability to fly
class Chicken extends Bird implements abilityToFly {
Chicken(String gender, String age, String weight) {
super("Female", "1yr", "1kg");
}
@Override
public void Fly() {
System.out.println("It can not Fly");
}
}
我不确定我是否以正确的方式完成了这项工作,是否有人可以为我更正此代码并告诉我如何实例化它。谢谢你概括起来,再作些改动也不为过 您已经正确地完成了
封装、继承
。你可以用一种小改进的方法来处理下面的事情
爬行动物
和鱼
应该是一个扩展动物的类
Frog
应该是另一个类,它有leap
和一些其他它自己的属性。类似地Fish
我不确定这些分类。根据类
图,我将向您解释oops概念
n
数量的爬行动物
每种都可以有自己的
行为。让我们假设gradive1
边吃边发声,而gradive2
没有李>
所以你可以有如下的东西
public abstract Reptile extends Animal{
public abstract leap();
}
public class Reptile1 extends Reptile {
//Define leap behaviour
//Define other behaviour and characteristics
}
public class Reptile2 extends Reptile {
//Define leap behaviour
//Define other behaviour and characteristics
}
在实例化时,您可以执行爬行动物青蛙=新青蛙()代码>-多态性
您需要将类属性设置为private
并添加getter,
设置器
-<代码>抽象
Chicken
不需要实现fly
接口,因为它不能实现这种行为除此之外,你的
初始化看起来不错。青蛙不是爬行动物。现在,我得到了我的胸部,看看这篇文章
private String gender;
private String age;
private String weight;
public String getGender() {
return gender;
}
public void setGender(String gender) {
//validate if needed - only accepted genders
//to avoid malformed data/input
this.gender = gender;
}