From ddca915d58b2846579427228a3b4f14c164025f7 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 23 May 2026 14:00:42 +0800 Subject: [PATCH] =?UTF-8?q?day09-=E6=8A=BD=E8=B1=A1=E7=B1=BB=E6=A1=88?= =?UTF-8?q?=E4=BE=8B-=E5=9B=BE=E5=BD=A2Shape?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day09/src/com/inmind/abstract05/Demo06.java | 4 ++ .../com/inmind/abstract05/test/Rectangle.java | 22 ++++++++++ .../src/com/inmind/abstract05/test/Shape.java | 43 +++++++++++++++++++ .../com/inmind/abstract05/test/Test07.java | 22 ++++++++++ 4 files changed, 91 insertions(+) create mode 100644 day09/src/com/inmind/abstract05/test/Rectangle.java create mode 100644 day09/src/com/inmind/abstract05/test/Shape.java create mode 100644 day09/src/com/inmind/abstract05/test/Test07.java diff --git a/day09/src/com/inmind/abstract05/Demo06.java b/day09/src/com/inmind/abstract05/Demo06.java index ec338d9..d7de37f 100644 --- a/day09/src/com/inmind/abstract05/Demo06.java +++ b/day09/src/com/inmind/abstract05/Demo06.java @@ -10,6 +10,10 @@ package com.inmind.abstract05; 2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的 3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类 4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。 + +抽象类的意义是对某一些功能添加强制约束。 +基于重写来实现的,我们已经实现了自己该有的功能或,在此基础上,可以选择性地扩展功能 + */ public class Demo06 { public static void main(String[] args) { diff --git a/day09/src/com/inmind/abstract05/test/Rectangle.java b/day09/src/com/inmind/abstract05/test/Rectangle.java new file mode 100644 index 0000000..0c8e059 --- /dev/null +++ b/day09/src/com/inmind/abstract05/test/Rectangle.java @@ -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()); + } +} diff --git a/day09/src/com/inmind/abstract05/test/Shape.java b/day09/src/com/inmind/abstract05/test/Shape.java new file mode 100644 index 0000000..9159107 --- /dev/null +++ b/day09/src/com/inmind/abstract05/test/Shape.java @@ -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(); +} diff --git a/day09/src/com/inmind/abstract05/test/Test07.java b/day09/src/com/inmind/abstract05/test/Test07.java new file mode 100644 index 0000000..fc6149d --- /dev/null +++ b/day09/src/com/inmind/abstract05/test/Test07.java @@ -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()); + } +}