写一个父类和子类要求父类里面要有方法重载子类要在父类中覆写的java程序在这个里面加一个向上转型
时间: 2024-12-15 17:21:31 浏览: 8
在Java中,我们可以创建一个简单的例子来演示父类方法重载、子类覆盖以及向上转型的概念。首先,我们定义一个父类`Shape`,它有两个重载的`draw()`方法:
```java
public class Shape {
public void draw() {
System.out.println("Drawing a shape using default method.");
}
public void draw(Color color) {
System.out.println("Drawing a shape with color: " + color);
}
}
```
接下来,我们有一个子类`Circle`,它是`Shape`的实例,并重写了`draw()`方法:
```java
public class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
```
然后,我们可以创建一个父类型的引用变量`Shape parentShape`,并初始化为子类`Circle`的一个实例,这就是向上转型:
```java
public class Main {
public static void main(String[] args) {
// 向上转型
Shape parentShape = new Circle();
// 调用父类方法(向上转型后)
parentShape.draw(); // 输出 "Drawing a circle."
// 使用子类提供的方法(向下转型后再调用)
((Circle) parentShape).draw(); // 输出 "Drawing a circle."
}
}
```
在这个例子中,`parentShape`虽然声明为`Shape`类型,但我们能够通过强制类型转换为`Circle`来调用其特有的`draw()`方法,这就是向上转型和向下转型的应用。
阅读全文