面向对象基础(计算几何图形的周长)继承

package objectNextPart;

public class Triang extends Shape {   //继承形状父类
// 定义三角形的三边
private double a, b, c;

public Triang(String color, double a, double b, double c) {
super(color);
this.setSides(a, b, c);
}

public void setSides(double a, double b, double c) {
if (a + b <= c || a + c <= b || b + c <= a) {
System.out.println("三角形的两边之和必须大于第三边");
return;
}
this.a = a;
this.b = b;
this.c = c;

}

// 重写Shape类的计算周长的抽象方法
public double calPerimeter() {
return a + b + c;
}

// 重写Shape类的返回形状的抽象方法
public String getType() {
return getColor() + "三角形";
}
}

//圆类继承Shape父类

public class Circle extends Shape {
private double r;

public Circle(String color, double r) {
super(color);
this.r = r;
}

public double calPerimeter() {
return 2 * Math.PI * r;
}

public String getType() {
return getColor() + "圆形";
}
}

package objectNextPart;  //Shape父类的抽象方法和初始代码块以及成员变量

public abstract class Shape {
{
System.out.println("执行Shape的初始化代码块");
}
private String color;

// 定义一个计算周长的抽象方法
public abstract double calPerimeter();

// 定义一个返回形状的抽象方法;
public abstract String getType();

// 定义Shape的构造器,该构造器并不是用于创建Shape对象
// 而是用于被子类调用
public Shape() {
}

public Shape(String color) {
System.out.println("执行Shape的构造器...");
this.color = color;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

//测试类

public static void main(String[] args) {
Shape s1 = new Triang("黑色", 3, 2, 5);// 执行构造器并设置边长
Shape s2 = new Circle("黄色", 3);
System.out.println(s1.getType());
((Triang) s1).setSides(3, 4, 5);// 重新设置三角形三边并向下强转型
System.out.println(s1.calPerimeter());
System.out.println(s2.getType());
System.out.println(s2.calPerimeter());
}
}

 

转载于:https://www.cnblogs.com/Lovemeifyoudare/p/10303636.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值