day09-抽象类案例-图形Shape
This commit is contained in:
@@ -10,6 +10,10 @@ package com.inmind.abstract05;
|
||||
2. 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
|
||||
3. 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
|
||||
4. 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。
|
||||
|
||||
抽象类的意义是对某一些功能添加强制约束。
|
||||
基于重写来实现的,我们已经实现了自己该有的功能或,在此基础上,可以选择性地扩展功能
|
||||
|
||||
*/
|
||||
public class Demo06 {
|
||||
public static void main(String[] args) {
|
||||
|
||||
22
day09/src/com/inmind/abstract05/test/Rectangle.java
Normal file
22
day09/src/com/inmind/abstract05/test/Rectangle.java
Normal 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());
|
||||
}
|
||||
}
|
||||
43
day09/src/com/inmind/abstract05/test/Shape.java
Normal file
43
day09/src/com/inmind/abstract05/test/Shape.java
Normal 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();
|
||||
}
|
||||
22
day09/src/com/inmind/abstract05/test/Test07.java
Normal file
22
day09/src/com/inmind/abstract05/test/Test07.java
Normal 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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user