代碼如下:
在綏芬河等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都網站制作、網站設計 網站設計制作定制設計,公司網站建設,企業網站建設,品牌網站制作,全網整合營銷推廣,成都外貿網站建設,綏芬河網站建設費用合理。
abstract?class?DongWu?{
public?abstract?void?info();
}
class?Bird?extends?DongWu?{
@Override
public?void?info()?{
System.out.println("我是一只鳥。");
}
}
class?Fish?extends?DongWu?{
@Override
public?void?info()?{
System.out.println("我是一條魚。");
}
}
public?class?App5?{
public?static?void?main(String[]?args)?{
DongWu?bird?=?new?Bird();
bird.info();
DongWu?fish?=?new?Fish();
fish.info();
}
}
一、繼承
通過擴展一個已有的類,并繼承該類的屬性和行為,來創建一個新的類。已有的稱為父類,新的類稱為子類(父類派生子類,子類繼承父類)。
(1)繼承的優點:
①代碼的可重用性;
②父類的屬性的方法可用于子類;
③子類可擴展父類的屬性和方法;
④設計應用程序變得更加簡單。
(2)關鍵字“isa”用于判斷父類和子類的繼承關系是否正確。
(3)Java中繼承的實現:
public?class?子類extends?父類{}
(4)繼承的單根性:在Java中一個類只能有一個父類;
傳遞性:一個Java類可以父類,父類也可以有父類。
(5)所有類的根類:
Object類,又叫基類或超類。
Object類是每個Java類的父類,要么是直接的父類,要么就是間接的父類。
Object類中的三個重要方法:
①public?boolean?equals(Objectx):檢測兩個對象是否相等。
該方法經常被重寫。若兩個對象通過該方法判斷是相等的,那么兩個對象的hashCode()方法應該產生相同的哈希碼
②public?String?toString:該方法返回對象的字符串表示。
用字符串來表示對象有助于調試或測試。
③protected?void?finalize()?throws?Throwale:
該方法在對象將要被垃圾回收時調用。
(6)方法重寫:
子類可以重寫從父類繼承的方法,從而允許子類添加或者改變父類中方法的行為。
該行為方法生在子類中,對父類方法重寫。
子類重寫父類方法時,北京北大青鳥認為必須遵循如下規則:
①子類的方法的返回值類型、方法名和形式參數列表必須和父類中的是相同的;
②訪問修飾符必須不小于父類中的訪問修飾符;
③子類中重寫拋出的異常不能比父類中拋出的異常多。
總的來說:編譯時看父類,運行時看子類。
繼承,子類繼承父類中所以的屬性和方法,但是對于private的屬相和方法,由于這個是父類的隱私,所以子類雖然是繼承了,但是沒有可以訪問這些屬性和方法的引用,所以相當于沒有繼承到。很多時候,可以理解為,沒有繼承。
多態:就是父類引用可以持有子類對象。這時候只能調用父類中的方法,而子類中特有方法是無法訪問的,因為這個時候(編譯時)你把他看作父類對象的原因,但是到了運行的時候,編譯器就會發現這個父類引用中原來是一個子類的對像,所以如果父類和子類中有相同的方法時,調用的會是子類中的方法,而不是父類的。
題目有關回答如下,供參考:
4、this:當前對象的引用
super:當前對象的超(父)類對象的一個引用
5、繼承是面向對象最顯著的一個特性。
繼承的意義:繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的能力。
定義繼承:使用關鍵字 extends 來實現繼承
6、多態(Polymorphism)按字面的意思就是“多種狀態”,也是面向對象的一個特性。
允許將子類類型的引用賦值給父類類型的引用。
7、代碼如下:
/**
*?父類(圖形)
*?
*?@author?qd
*
*/
abstract?class?Figure?{
double?area;
}
/**
*?求面積的接口
*?
*?@author?qd
*
*/
interface?Area?{
public?void?getArea();
}
/**
*?三角形
*?
*?@author?qd
*
*/
class?Triangle?extends?Figure?implements?Area?{
//?底
double?bottom;
//?高
double?high;
public?Triangle(double?bottom,?double?high)?{
super();
this.bottom?=?bottom;
this.high?=?high;
}
@Override
public?void?getArea()?{
area?=?bottom?*?high?*?0.5;
System.out.println("三角形面積是:"?+?area);
}
}
/**
*?正方形
*?
*?@author?qd
*
*/
class?Square?extends?Figure?implements?Area?{
//?邊長
double?length;
public?Square(double?length)?{
super();
this.length?=?length;
}
@Override
public?void?getArea()?{
area?=?length?*?length;
System.out.println("正方形面積是:"?+?area);
}
}
/**
*?圓
*?
*?@author?qd
*
*/
class?Circular?extends?Figure?implements?Area?{
//?半徑
double?radius;
public?Circular(double?radius)?{
super();
this.radius?=?radius;
}
@Override
public?void?getArea()?{
area?=?Math.PI?*?radius?*?radius;
System.out.println("圓面積是:"?+?area);
}
}
public?class?Test?{
public?static?void?main(String[]?args)?{
//?三角形對象
Area?triangle?=?new?Triangle(3,?4);
triangle.getArea();
//?正方形對象
Area?square?=?new?Square(4);
square.getArea();
//?圓對象
Area?circular?=?new?Circular(2);
circular.getArea();
}
}
8、代碼如下:
/**
*?球類
*?
*?@author?qd
*
*/
class?Ball?{
//?私有成員變量半徑
private?double?r;
public?double?getR()?{
return?r;
}
public?void?setR(double?r)?{
this.r?=?r;
}
}
/**
*?臺球
*?
*?@author?qd
*
*/
class?Billiards?extends?Ball?{
//?私有成員變量顏色
private?String?color;
public?void?setColor(String?color)?{
this.color?=?color;
}
//?輸出信息
public?void?printMess(Billiards?billiards,Ball?ball)?{
System.out.println("臺球的顏色是:"?+?billiards.color?+?"???臺球的半徑是:"?+?ball.getR());
}
}
/**
*?公有測試類
*?
*?@author?qd
*
*/
public?class?TestBall?{
public?static?void?main(String[]?args)?{
Ball?ball?=?new?Ball();
ball.setR(5);
Billiards?billiards?=?new?Billiards();
billiards.setColor("白色");
billiards.printMess(billiards,ball);
}
}
7題和8題測試如下:
網站題目:java繼承和多態代碼 java 繼承 多態
分享網址:http://vcdvsql.cn/article48/ddiphep.html
成都網站建設公司_創新互聯,為您提供網站制作、網站建設、手機網站建設、網站設計、云服務器、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯