在java中有一個特型叫繼承(Inheritance),通過繼承我們可以重復使用代碼,令代碼簡潔,易于擴展。例如:有一個sharp的類,這個類實現了sharp的一些方法,現在我們要寫一個circle的類,我們想了想,呀circle屬于sharp的一種呀,我們可以繼承sharp呀!對,這就是繼承的奧妙!
請看下面的代碼:
/** * @author gavin * 這是一個描述形狀的類 */class Sharp { public double area(){ return 0; } /* * 或得面積較大的Sharp */ static Sharp getLarger(Sharp a,Sharp b){ if (a.area()>b.area()) return a; else return b; }}/** * * @author gavin * 這是一個Circle類,繼承Sharp */class Circle extends Sharp{ PRivate static final double PI = Math.PI; private double radius=0; Circle(int radius){ this.radius =radius; } public double area(){ //此方法覆蓋了父類Sharp中的同名方法 return PI*this.radius*this.radius; } //注意,Circle 繼承 Sharp,所以Circle擁有Sharp中的getLarger方法}/** * * @author gavin * 這是一個Square類,繼承Sharp */class Square extends Sharp{ private double side = 0; Square(double side){ this.side = side; } public double area(){ //此方法覆蓋了父類Sharp中的同名方法 return side*side; } //注意,Square 繼承 Sharp,所以Square擁有Sharp中的getLarger方法 public static void main(String[] args){ Sharp a = new Circle(2);//一個父類可以有多個子類,如這里Sharp就有兩個孩子,他們分別是Circle和Square。這里父類Sharp可以接受其所有子類的對象。 Sharp b= new Square(2); Sharp larger = Sharp.getLarger(a, b);//父類Sharp不考慮它的子類是什么形狀,會自動調用起子類對象的方法,因為方法被繼承了。 System.out.println("面積較的形狀的面積是:" + larger.area()); } }
新聞熱點
疑難解答