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()); + } +}