1.添加一个抽象类Shape,有抽象方法:求面积area和求周长peri;
时间: 2023-06-11 16:10:10 浏览: 71
好的,以下是代码实现:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
@abstractmethod
def peri(self):
pass
```
在这段代码中,我们定义了一个名为 Shape 的抽象类,并且使用了 ABC 和 abstractmethod 这两个模块和装饰器。其中,ABC 模块用于定义抽象基类,abstractmethod 装饰器用于标记抽象方法,这些抽象方法必须在子类中被实现。
在 Shape 类中,我们定义了两个抽象方法 area 和 peri,这两个方法分别用于求面积和周长。由于这两个方法是抽象方法,因此不能在 Shape 类中被实现,必须在子类中被实现。这样,我们就可以通过继承 Shape 类来实现不同形状的面积和周长计算。
相关问题
java1.添加一个抽象类Shape,有抽象方法:求面积area和求周长peri;
以下是 Java 代码实现:
```
abstract class Shape {
abstract double area(); // 抽象方法求面积
abstract double peri(); // 抽象方法求周长
}
```
在这个抽象类中,我们声明了两个抽象方法 `area()` 和 `peri()`,用于求图形的面积和周长。由于这两个方法是抽象的,因此我们无法在抽象类中对它们进行实现。这意味着任何继承自 `Shape` 的子类都必须实现这两个方法,否则它们也必须声明为抽象类。
请设计并编写一个同时满足下列所有需求的代码。 (1)定义一个public接口,接口名为Shape; (2)定义返回值为double类型并且无输入参数的public抽象方法,其中方法名为getArea; (3)定义返回值为double类型并且无输入参数的public抽象方法,其中方法名为getPerimeter。 (4)定义一个public类Square,且该类实现了接口Shape; (5)在类Square中定义两个double类型的public成员变量,其中成员变量名为:width,height; (6)用带有两个形式参数的public构造方法对Square类中的成员变量进行初始化,其中形式参数名为: width,height; (7)在Square类中对getArea方法进行实现,返回面积,即width*height; (8)在Square类中对getPerimeter方法进行实现,返回周长,即2*(width+height)。 初始样例: 3 4 输出样例: (不考虑小数位数) area = 12.0 peri = 14.0
下面是代码实现:
```java
// 定义接口 Shape
public interface Shape {
// 返回面积
public abstract double getArea();
// 返回周长
public abstract double getPerimeter();
}
// 定义 Square 类,实现 Shape 接口
public class Square implements Shape {
public double width;
public double height;
// 构造方法
public Square(double width, double height) {
this.width = width;
this.height = height;
}
// 实现 getArea 方法
public double getArea() {
return width * height;
}
// 实现 getPerimeter 方法
public double getPerimeter() {
return 2 * (width + height);
}
}
// 测试代码
public static void main(String[] args) {
double width = 3;
double height = 4;
Square square = new Square(width, height);
System.out.println("area = " + square.getArea());
System.out.println("peri = " + square.getPerimeter());
}
```
输出结果为:
```
area = 12.0
peri = 14.0
```