大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java教程
Java標識符與關鍵字
Java變量
Java數據類型
Java運算符
Java控制語句
Java方法
Java面向對象
Java對象的創建和使用
Java封裝
Java中static和this
Java繼承
Java方法覆蓋和多態
Java super
Java基礎練習題

Java如何繼承

java中繼承的語法格式:

class 類名 extends 父類名{

類體;

}
為什么需要繼承,接下來我們用以下這個需求來說明一下:
public class Account { //銀行賬戶類
	//賬號
	private String actno;
	//余額
	private double balance;
	//賬號和余額的set和get方法
	public String getActno() {
		return actno;
	}
	public void setActno(String actno) {
		this.actno = actno;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
}
public class CreditAccount { //信用賬戶類
	//賬號
	private String actno;
	//余額
	private double balance;
	//賬號和余額的set和get方法
	public String getActno() {
		return actno;
	}
	public void setActno(String actno) {
		this.actno = actno;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
	//信譽度(特有屬性)
	private double credit;
	//信譽度的set和get方法
	public double getCredit() {
		return credit;
	}
	public void setCredit(double credit) {
		this.credit = credit;
	}
}
以上兩個類分別描述了“銀行賬戶類”和“信用賬戶類”,信用賬戶類除了具有銀行賬戶類的特征之外還有自己的特性,按照以上代碼的編寫方式,程序將會非常的臃腫,我們將上面的程序修改為繼承方式,請看代碼:
public class Account { //銀行賬戶類
	//賬號
	private String actno;
	//余額
	private double balance;
	//賬號和余額的set和get方法
	public String getActno() {
		return actno;
	}
	public void setActno(String actno) {
		this.actno = actno;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
}
public class CreditAccount extends Account{ //信用賬戶類
	//信譽度(特有屬性)
	private double credit;
	//信譽度的set和get方法
	public double getCredit() {
		return credit;
	}
	public void setCredit(double credit) {
		this.credit = credit;
	}
}
public class AccountTest {
	public static void main(String[] args) {
		CreditAccount act = new CreditAccount();
		act.setActno("111111111");
		act.setBalance(9000.0);
		System.out.println(act.getActno() + "信用賬戶,余額" + act.getBalance() + "元");
	}
}
運行結果如下圖所示:

Java繼承

圖12-2:繼承測試

通過以上的代碼,我們可以看到繼承是可以解決代碼臃腫問題的,換句話說,繼承解決了代碼復用的問題,但這其實并不是繼承最重要的作用,繼承最重要的作用是:有了繼承才有了方法覆蓋和多態(后續的課程中詳細講解)。

繼承有哪些特性呢?以下內容需要記憶:

● B類繼承A類,則稱A類為超類(superclass)、父類、基類,B類則稱為子類(subclass)、派生類、擴展類。

● java中的繼承只支持單繼承,不支持多繼承,C++中支持多繼承,這也是java體現簡單性的一點,換句話說,java中不允許這樣寫代碼:class B extends A,C{ }。

● 雖然java中不支持多繼承,但有的時候會產生間接繼承的效果,例如:class C extends B,class B extends A,也就是說,C直接繼承B,其實C還間接繼承A。

● java中規定,子類繼承父類,除構造方法和被private修飾的數據不能繼承外,剩下都可以繼承。

● java中的類沒有顯示的繼承任何類,則默認繼承Object類,Object類是java語言提供的根類(老祖宗類),也就是說,一個對象與生俱來就有Object類型中所有的特征。

● 繼承也存在一些缺點,例如:CreditAccount類繼承Account類會導致它們之間的耦合度非常高,Account類發生改變之后會馬上影響到CreditAccount類。

接下來我們來測試一下從Object類中繼承過來的方法,先來看一下Object類的部分源代碼:

Java繼承

圖12-3:Object類中toString()方法源代碼

我們來嘗試調用這個方法,請看代碼以及執行結果:

public class ExtendsTest{
	public static void main(String[] args) {
		ExtendsTest et = new ExtendsTest();
		String s = et.toString();
		System.out.println(s);
	}
}
運行結果如下圖所示:

Java如何繼承

圖12-4:toString()方法執行結果

雖然輸出結果看不懂,但是起碼看到這個字符串當中確實是有一個“@”符號的,toString()方法確實被ExtendsTest類繼承過來了。

全部教程
主站蜘蛛池模板: 伊人久久婷婷丁香六月综合基地 | 欧美日韩精品国产一区二区 | 92自拍视频 | 欧美精品a毛片免费观看 | 国产成人综合久久精品亚洲 | 日本在线高清不卡 | 站长推荐国产午夜免费视频 | 欧美色黄视频 | 色偷偷91久久综合噜噜噜 | 亚洲精品欧美精品中文字幕 | 国产成人精品一区二三区在线观看 | 亚洲mv | 亚洲精品中文字幕久久久久久 | 九九精品热线免费观看6 | 成人免费视频视频在线观看 免费 | 欧美亚洲国产精品久久 | 亚洲伦理一二三四 | 天天狠狠弄夜夜狠狠躁·太爽了 | 国产成人午夜片在线观看 | 精品视频在线免费看 | 国产中文字幕亚洲 | 欧美性插视频 | 99在线观看精品视频 | 成人毛片18岁女人毛片免费看 | 国产精品美女久久久久久 | 日韩性生活视频 | 久久99影院 | 91精品啪在线观看国产老湿机 | 日本一级毛片中文字幕 | 久久精品国产福利 | 久草在线视频在线观看 | 婷婷中文 | 亚洲一级生活片 | 久久久综合视频 | 视频在线一区二区三区 | 久久中文亚洲国产 | 成人伊人网 | 国产日韩欧美成人 | 国产欧美精品一区二区色综合 | 九九国产在线 | 久久久久夜色精品波多野结衣 |