abstract class Shape { abstract void display();} class Circle extends Shape { void display(){ System.out.println("Circle"); }} class Rectangle extends Shape { void display() { System.out.println("Rectangle");}} class Triangle extends Shape { void display() { System.out.println("Triangle");} } public class AbstractClassDemo{ public static void main(String args[]){ (new Circle()).display(); (new Rectangle()).display(); (new Triangle()).display(); }}} }
时间: 2024-03-07 22:54:10 浏览: 20
这段代码是一个Java程序,其中定义了一个抽象类Shape和三个具体类Circle、Rectangle和Triangle,这三个类都继承自Shape类并实现了它的抽象方法display()。在main()方法中,分别创建了一个Circle、一个Rectangle和一个Triangle对象,并调用它们的display()方法,输出了它们的形状名称。这段代码展示了Java语言中抽象类和多态的使用方法。
相关问题
有关abstract 的java代码
以下是一个简单的 Java 抽象类的例子:
```
abstract class Shape {
// 抽象方法,没有具体实现
public abstract void draw();
// 普通方法,有具体实现
public void display() {
System.out.println("This is a shape.");
}
}
class Circle extends Shape {
// 实现抽象方法
public void draw() {
System.out.println("Drawing a circle.");
}
}
public class Main {
public static void main(String[] args) {
Circle c = new Circle();
c.draw(); // 输出 "Drawing a circle."
c.display(); // 输出 "This is a shape."
}
}
```
在上面的代码中,`Shape` 是一个抽象类,它有一个抽象方法 `draw()` 和一个普通方法 `display()`。`Circle` 类继承了 `Shape` 类,并且实现了 `draw()` 方法。在 `Main` 类中,我们实例化了一个 `Circle` 对象并调用了它的 `draw()` 和 `display()` 方法。由于 `Shape` 是一个抽象类,我们不能直接实例化它,但是我们可以通过继承它来创建具体的子类。
定义抽象类Shape,其中包含抽象方法double getPeremeter()求周长和double getArea()求面积。 定义一个矩形类,继承此抽象类,并自行扩充成员变量和方法,定义一个方法一次性直接显示长和宽、周长和面积。 定义一个圆形类,继承此抽象类,并自行扩充成员变量和方法,定义一个方法一次性直接显示半径、周长和面积。 定义一个测试类进行测试
好的,以下是定义抽象类Shape和矩形类Rectangle、圆形类Circle及测试类的代码:
Shape.java
```java
public abstract class Shape {
public abstract double getPerimeter();
public abstract double getArea();
}
```
Rectangle.java
```java
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
@Override
public double getArea() {
return width * height;
}
public void display() {
System.out.println("矩形的长为:" + width);
System.out.println("矩形的宽为:" + height);
System.out.println("矩形的周长为:" + getPerimeter());
System.out.println("矩形的面积为:" + getArea());
}
}
```
Circle.java
```java
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
public void display() {
System.out.println("圆形的半径为:" + radius);
System.out.println("圆形的周长为:" + getPerimeter());
System.out.println("圆形的面积为:" + getArea());
}
}
```
Test.java
```java
public class Test {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle(3, 4);
rectangle.display();
Circle circle = new Circle(5);
circle.display();
}
}
```
运行Test类的main方法即可进行测试。