Java中的抽象類

(1)語法定義:抽象類前使用abstract關鍵字修飾
(2)應用場景
 a、在某些情況下,某個父類只是知道其子類應該包含怎樣的方法,但無法準確知道這些子類如何實現這些方法。
 b、從多個具有相同特徵的類中抽象出一個抽象類,以這個抽象類作爲子類的模板,從而避免了子類設計的隨意性。
(3)作用
     限制規定子類必須實現某些方法,但不關注實現細節
(4)使用規則
    a.abstract定義抽象類
    b.abstract定義抽象方法,只有聲明,不需要實現
    c.包含抽象方法的類是抽象類
    d.抽象類中可以包含普通的方法,也可以沒有抽象方法
    e.抽象類不能直接創建,可以定義引用變量
(5)抽象方法沒有方法體以分號結束

父類Shape

package shuqi;

public abstract class Shape {

public abstract void areas();
public abstract void circle();

}

子類Rect

package shuqi;

public class Rect extends Shape {
    double x, y;
public void show(double x,double y){
	this.x =x;
	this.y=y;
	System.out.println("寬爲"+x+",長爲"+y);
}
public void areas()
{	double s=x*y;
	System.out.println(s);
}
public void circle(){
	System.out.println(2*(x+y));
	}
}

測試類Initial

package shuqi;

public class Initial {
public static void main(String[] args) {
	Rect one1=new Rect();
//	Circle one2=new Circle();
//	Rect one3=new Square();
	one1.show(3, 4);
	one1.areas();
	one1.circle();
//	one2.show(2);
//	one2.areas();
//	one2.circle();
//	one3.show(3, 3);
//	one3.areas();
//	one3.circle();
}
}

運行結果爲:

寬爲3.0,長爲4.0
面積爲12.0
周長爲14.0

注意事項:(1)子類中獨有的方法不可以被父類的引用指向子類的對象所調用

                    即不可以Shape one1=new Rect();

                   (2)注意子類中方法和父類中一致(是否有參以及參數類型,個數等等)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章