定义一个抽象类作为父类,包含两个属性和两个方法。定义两个子类,每个子类都包含1个属性和2个方法,每个子类的方法中必须包含至少一个方法是重写父类的方法。然后再创建一个新的类,在这个新类中创建实例并调用方法,在该类中要体现出多态的特性。
时间: 2024-10-18 12:04:34 浏览: 25
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
首先,让我们定义一个抽象父类`BaseClass`,它有两个属性`attr1`和`attr2`,以及两个方法`method1()`和`method2()`:
```java
public abstract class BaseClass {
private String attr1;
private int attr2;
public BaseClass(String attr1, int attr2) {
this.attr1 = attr1;
this.attr2 = attr2;
}
// 父类方法
public void method1() {
System.out.println("这是BaseClass的method1");
}
public abstract void method2();
}
```
接着,我们有两个子类`SubClass1`和`SubClass2`,每个子类继承自`BaseClass`,并且覆盖了`method2()`:
```java
public class SubClass1 extends BaseClass {
private double attr3;
public SubClass1(String attr1, int attr2, double attr3) {
super(attr1, attr2);
this.attr3 = attr3;
}
@Override
public void method2() {
System.out.println("这是SubClass1的method2,内容:" + attr3);
}
}
public class SubClass2 extends BaseClass {
private boolean attr4;
public SubClass2(String attr1, int attr2, boolean attr4) {
super(attr1, attr2);
this.attr4 = attr4;
}
@Override
public void method2() {
System.out.println("这是SubClass2的method2,内容:" + (attr4 ? "true" : "false"));
}
}
```
现在,我们可以创建一个新类`Client`,在这个类中,我们创建`BaseClass`类型的引用,并通过这两个子类的对象来调用方法,展示了多态性:
```java
public class Client {
public static void main(String[] args) {
BaseClass obj1 = new SubClass1("属性1", 10, 5.5);
BaseClass obj2 = new SubClass2("属性2", 20, true);
// 调用方法,体现多态
obj1.method1(); // 输出:这是BaseClass的method1
obj1.method2(); // 输出:这是SubClass1的method2,内容:5.5
obj2.method1(); // 输出:这是BaseClass的method1
obj2.method2(); // 输出:这是SubClass2的method2,内容:true
}
}
```
阅读全文