代碼如下:
在綏芬河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),綏芬河網(wǎng)站建設(shè)費(fèi)用合理。
abstract?class?DongWu?{
public?abstract?void?info();
}
class?Bird?extends?DongWu?{
@Override
public?void?info()?{
System.out.println("我是一只鳥(niǎo)。");
}
}
class?Fish?extends?DongWu?{
@Override
public?void?info()?{
System.out.println("我是一條魚(yú)。");
}
}
public?class?App5?{
public?static?void?main(String[]?args)?{
DongWu?bird?=?new?Bird();
bird.info();
DongWu?fish?=?new?Fish();
fish.info();
}
}
一、繼承
通過(guò)擴(kuò)展一個(gè)已有的類,并繼承該類的屬性和行為,來(lái)創(chuàng)建一個(gè)新的類。已有的稱為父類,新的類稱為子類(父類派生子類,子類繼承父類)。
(1)繼承的優(yōu)點(diǎn):
①代碼的可重用性;
②父類的屬性的方法可用于子類;
③子類可擴(kuò)展父類的屬性和方法;
④設(shè)計(jì)應(yīng)用程序變得更加簡(jiǎn)單。
(2)關(guān)鍵字“isa”用于判斷父類和子類的繼承關(guān)系是否正確。
(3)Java中繼承的實(shí)現(xiàn):
public?class?子類extends?父類{}
(4)繼承的單根性:在Java中一個(gè)類只能有一個(gè)父類;
傳遞性:一個(gè)Java類可以父類,父類也可以有父類。
(5)所有類的根類:
Object類,又叫基類或超類。
Object類是每個(gè)Java類的父類,要么是直接的父類,要么就是間接的父類。
Object類中的三個(gè)重要方法:
①public?boolean?equals(Objectx):檢測(cè)兩個(gè)對(duì)象是否相等。
該方法經(jīng)常被重寫(xiě)。若兩個(gè)對(duì)象通過(guò)該方法判斷是相等的,那么兩個(gè)對(duì)象的hashCode()方法應(yīng)該產(chǎn)生相同的哈希碼
②public?String?toString:該方法返回對(duì)象的字符串表示。
用字符串來(lái)表示對(duì)象有助于調(diào)試或測(cè)試。
③protected?void?finalize()?throws?Throwale:
該方法在對(duì)象將要被垃圾回收時(shí)調(diào)用。
(6)方法重寫(xiě):
子類可以重寫(xiě)從父類繼承的方法,從而允許子類添加或者改變父類中方法的行為。
該行為方法生在子類中,對(duì)父類方法重寫(xiě)。
子類重寫(xiě)父類方法時(shí),北京北大青鳥(niǎo)認(rèn)為必須遵循如下規(guī)則:
①子類的方法的返回值類型、方法名和形式參數(shù)列表必須和父類中的是相同的;
②訪問(wèn)修飾符必須不小于父類中的訪問(wèn)修飾符;
③子類中重寫(xiě)拋出的異常不能比父類中拋出的異常多。
總的來(lái)說(shuō):編譯時(shí)看父類,運(yùn)行時(shí)看子類。
繼承,子類繼承父類中所以的屬性和方法,但是對(duì)于private的屬相和方法,由于這個(gè)是父類的隱私,所以子類雖然是繼承了,但是沒(méi)有可以訪問(wèn)這些屬性和方法的引用,所以相當(dāng)于沒(méi)有繼承到。很多時(shí)候,可以理解為,沒(méi)有繼承。
多態(tài):就是父類引用可以持有子類對(duì)象。這時(shí)候只能調(diào)用父類中的方法,而子類中特有方法是無(wú)法訪問(wèn)的,因?yàn)檫@個(gè)時(shí)候(編譯時(shí))你把他看作父類對(duì)象的原因,但是到了運(yùn)行的時(shí)候,編譯器就會(huì)發(fā)現(xiàn)這個(gè)父類引用中原來(lái)是一個(gè)子類的對(duì)像,所以如果父類和子類中有相同的方法時(shí),調(diào)用的會(huì)是子類中的方法,而不是父類的。
題目有關(guān)回答如下,供參考:
4、this:當(dāng)前對(duì)象的引用
super:當(dāng)前對(duì)象的超(父)類對(duì)象的一個(gè)引用
5、繼承是面向?qū)ο笞铒@著的一個(gè)特性。
繼承的意義:繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力。
定義繼承:使用關(guān)鍵字 extends 來(lái)實(shí)現(xiàn)繼承
6、多態(tài)(Polymorphism)按字面的意思就是“多種狀態(tài)”,也是面向?qū)ο蟮囊粋€(gè)特性。
允許將子類類型的引用賦值給父類類型的引用。
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?{
//?邊長(zhǎng)
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)?{
//?三角形對(duì)象
Area?triangle?=?new?Triangle(3,?4);
triangle.getArea();
//?正方形對(duì)象
Area?square?=?new?Square(4);
square.getArea();
//?圓對(duì)象
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;
}
}
/**
*?臺(tái)球
*?
*?@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("臺(tái)球的顏色是:"?+?billiards.color?+?"???臺(tái)球的半徑是:"?+?ball.getR());
}
}
/**
*?公有測(cè)試類
*?
*?@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題測(cè)試如下:
網(wǎng)站題目:java繼承和多態(tài)代碼 java 繼承 多態(tài)
分享網(wǎng)址:http://muchs.cn/article48/ddiphep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、云服務(wù)器、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)