2.编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。然后再编写一个A类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子类新增的方法g输出大写的英文字母表。最后编写主类C,在主类的main方法中利用类型的多态定义A类引用,既输出小写字母,又输出大写字母。
时间: 2023-07-16 10:12:43 浏览: 171
下面是代码实现:
```java
class A {
public void f() {
for(char c = 'a'; c <= 'z'; c++) {
System.out.print(c + " ");
}
System.out.println();
}
}
class B extends A {
public void g() {
for(char c = 'A'; c <= 'Z'; c++) {
System.out.print(c + " ");
}
System.out.println();
}
}
public class C {
public static void main(String[] args) {
A a = new A();
B b = new B();
A ab = new B();
a.f();
b.f();
b.g();
ab.f();
((B)ab).g();
}
}
```
在上面的代码中,类 A 实现了输出小写字母的方法 f,类 B 继承了 A,并新增了输出大写字母的方法 g。在主类 C 的 main 方法中,我们定义了 A 类型的引用 a、B 类型的引用 b、以及 A 类型的引用 ab 指向 B 类型的对象。通过多态,我们可以调用 a.f() 和 ab.f() 输出小写字母,同时通过强制类型转换 ((B)ab).g(),我们也可以调用子类 B 新增的方法 g 输出大写字母。
阅读全文