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