day09-抽象类案例-图形Shape

This commit is contained in:
2026-05-23 14:00:42 +08:00
parent 4c08e64e1f
commit ddca915d58
4 changed files with 91 additions and 0 deletions

View File

@@ -10,6 +10,10 @@ package com.inmind.abstract05;
2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
抽象类的意义是对某一些功能添加强制约束。
基于重写来实现的,我们已经实现了自己该有的功能或,在此基础上,可以选择性地扩展功能
*/
public class Demo06 {
public static void main(String[] args) {

View File

@@ -0,0 +1,22 @@
package com.inmind.abstract05.test;
public class Rectangle extends Shape{
//强制要求创建矩形的时候,必定要给我一长宽,才能创建矩形对象
public Rectangle(int chang ,int kuan){
super(chang,kuan,0);
}
@Override
public double getArea() {
// return super.getChang()*super.getKuan();
return getChang()*getKuan();
}
@Override
public double getZC() {
return 2*(getChang()+getKuan());
}
}

View File

@@ -0,0 +1,43 @@
package com.inmind.abstract05.test;
public abstract class Shape {
//定义共性的属性
private int chang; //长
private int kuan;//宽
private int r;//半径
//满参构造方法
public Shape(int chang, int kuan, int r) {
this.chang = chang;
this.kuan = kuan;
this.r = r;
}
public int getChang() {
return chang;
}
public void setChang(int chang) {
this.chang = chang;
}
public int getKuan() {
return kuan;
}
public void setKuan(int kuan) {
this.kuan = kuan;
}
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
//成员方法
public abstract double getArea();
public abstract double getZC();
}

View File

@@ -0,0 +1,22 @@
package com.inmind.abstract05.test;
/*
- 定义形状抽象类Shape矩形Rectangle和圆形Circle继承Shape类。
- 圆形只能通过指定半径的方式创建Circle对象。
- 矩形只能通过指定长宽的方法创建Rectangle对象。
并且计算出各自的面积和周长
1.抽象类Shape
2.图形至少有2个功能抽象方法计算面积和周长
3.定义具体的图形圆形Circle矩形Rectangle
4.创建子类对象,调用构造方法(传入参数:半径 ,长,宽 这些属性抽取到父类中,子类直接使用)
*/
public class Test07 {
public static void main(String[] args) {
//创建一个矩形对象
Rectangle rectangle = new Rectangle(4, 2);
System.out.println("矩形的面积是:"+rectangle.getArea());
System.out.println("矩形的周长是:"+rectangle.getZC());
}
}