3.定义一个抽象类AbsAnimal,要求如下 (1)包括属性name,weight,color; (2)定义其有参构造方法; (3)定义受保护的run方法,功能是打印输出"Animal run fastly"; (4)在main方法里实例化抽象对象a AbsAnimal a = new AbsAnimal(….) ,想一想为什么会报错?如果报错注释掉该语句。
时间: 2023-12-06 18:45:44 浏览: 54
以下是定义的抽象类AbsAnimal:
```java
public abstract class AbsAnimal {
protected String name;
protected int weight;
protected String color;
public AbsAnimal(String name, int weight, String color) {
this.name = name;
this.weight = weight;
this.color = color;
}
protected void run() {
System.out.println("Animal run fastly");
}
public static void main(String[] args) {
// 实例化抽象对象会报错,因为抽象类无法直接被实例化
// AbsAnimal a = new AbsAnimal("Tom", 10, "black");
}
}
```
由于抽象类无法直接被实例化,所以在main方法里实例化抽象对象a会报错。如果想使用AbsAnimal类,需要通过继承它并实现它的抽象方法来创建一个子类对象。
相关问题
3.定义一个抽象类AbsAnimal,要求如下。 (1)包括属性name, weight, color; (2)定义具有参构造方法; (3)定义受保护的run方法,功能是打印输出"Animal run fastly"; (4)在main方法里实例化抽象对象a AbsAnimal a = new AbsAnimall(...),想想为什 么会报错?如果报错注释掉该语句。
以下是定义一个抽象类AbsAnimal的代码实现:
```java
public abstract class AbsAnimal {
protected String name;
protected double weight;
protected String color;
public AbsAnimal(String name, double weight, String color) {
this.name = name;
this.weight = weight;
this.color = color;
}
protected void run() {
System.out.println("Animal run fastly");
}
public static void main(String[] args) {
// 这里会报错,因为抽象类无法被实例化
// AbsAnimal a = new AbsAnimal("dog", 10.5, "white");
}
}
```
在该抽象类中,定义了三个属性:name、weight、color,分别表示动物的名字、体重和颜色。同时定义了一个具有参构造方法,用于初始化这三个属性。另外,还定义了一个受保护的run方法,用于打印输出"Animal run fastly"。需要注意的是,这里的run方法是受保护的,只能在子类中访问。
在main方法中,我们尝试实例化一个抽象对象a,但是会报错,因为抽象类无法被实例化。如果想要使用该类,需要定义一个子类并实现其中的抽象方法。
java定义一个抽象类AbsAnimal,要求如下 (1)包括属性name,weight,color; (2)定义其有参构造方法 (3)定义受保护的run方法,功能是打印输出"Animal run fastly" 定义一个类Tiger继承抽象类AbsAnimal, 要求如下(1)在main方法中实例化一个Tiger对象(2)调用run方法,查看输出结果
好的,这是Java定义抽象类AbsAnimal并继承的类Tiger的代码:
```java
public abstract class AbsAnimal {
protected String name;
protected double weight;
protected String color;
public AbsAnimal(String name, double weight, String color) {
this.name = name;
this.weight = weight;
this.color = color;
}
protected void run() {
System.out.println("Animal run fastly");
}
}
public class Tiger extends AbsAnimal {
public Tiger(String name, double weight, String color) {
super(name, weight, color);
}
}
public class Main {
public static void main(String[] args) {
Tiger tiger = new Tiger("Tiger", 200.0, "Orange");
tiger.run();
}
}
```
在这个代码中,我们定义了一个抽象类AbsAnimal,并在其子类Tiger中实现了具体的构造方法。在main方法中,我们实例化了一个Tiger对象,并调用其run方法,输出结果为"Animal run fastly"。
需要注意的是,由于AbsAnimal是一个抽象类,我们无法直接实例化它,只能通过其具体的子类来实例化。同时,由于run方法是受保护的,我们只能在其子类中调用该方法。
阅读全文