Java繼承 封裝 多態

繼承概念:簡單說就是一個類使用extends來關聯另一個已存在的類(API中的或者自己寫的),Java繼承是面向對象的最顯著的特徵之一併且一個類只能單繼承(只能繼承一個 類)不能多繼承。

繼承特點:繼承是單一的;

                    繼承關係是可以傳遞的;

                    層次關係鮮明;

總的來說:Java繼承是單一的,可以調用父類的方法(一般來說不能調用父類的構造方法),雖然不能多繼承,但是Java提供了接口這個概念,來彌補繼承的單一性。

</pre></p><p><span style="white-space:pre"></span>例如:</p><pre name="code" class="java"><span style="color:#33cc00;">// 父類</span>
class person{
	
	public void count(){
		int x=3,y=4;
		System.out.println("x+y="+(x+y));		
	}	
}
<span style="color:#33cc00;">//主類(子類)
//Demo繼承的person Demo是子類,person是父類,
//繼承使用關鍵字extends</span>
public class Demo extends person{
<span style="background-color: rgb(255, 255, 255);"><span style="color:#33cc00;">//	主函數</span></span>
	public static void main(String[] args) {
		// TODO Auto-generated method stub
<span style="color:#33cc00;">//		建立對象demo</span>
		Demo demo = new Demo();
<span style="color:#33cc00;">//		使用對象調用父類的方法count()。
</span>		demo.count();
	}
}

類是對一個或幾個相似對象的描述,是具有相同屬性和方法的一組對象集合。類中的數據稱爲成員變量,對數據的操作稱爲成員方法。

類的語法格式:[修飾符]class 類名[extends 父類名] [implements 接口名序列]{

類主體

    }

對象

創建對象。在Java中創建對象包括聲明對象、爲對象分配內存空間兩部分。

(1)聲明對象格式

類名  對象名;

(2)爲對象分配內存空間要使用new運算符和類的構造放法。

格式:對象名 = new 類名([參數列表]);

(3)以上兩步可以寫到一起

類名  對象名 =new  類名([參數列表]);

抽象類

1. 定義

在Java中用abstract修飾的類稱爲抽象類,方法爲抽象方法,抽象方法只有聲明沒有具體實現,誰實現抽象類就必須實現裏面的所有方法

定義抽象類的格式:

abstract  class 類名{

  .......

}

定義抽象方法:

abstract 返回值類型  方法名([參數])

如下:

abstract class Employee
{
int basic = 220;
abstract void salary();
}

接口

1. 定義

創建接口的語法如下:

[修飾符]類型  接口名[extends 父接口列表] {

[修飾符]類型 屬性名=值;

返回值類型  方法名 (參數列表);

}

2. 接口實現

class 類名 implements 接口名[ ,接口名...555555555555]

注意:修飾接口的修飾符只有public和默認修飾符兩種。

    可以多重繼承,接口只能繼承接口,不能繼承類。

    屬性定義時必須賦值,是常量,屬性的修飾符默認爲final、static。

    接口中的方法必須是抽象方法。

封裝

封裝的目的:

(1)隱藏類的實施細節

(2)迫使用戶通過接口去訪問數據

(3)增強代碼的可維護性

如下:

class Card
{
private String cardNumber = null;
String getNumber(){
return cardNumber;
}
void setNUmber(String cardNumber){
this.cardNumber = cardNumber;
}
}
注意:抽象類不一定要包含抽象方法,但是有抽象方法的類一定是抽象類。

多態

多態的表現形式主要有方法的重載和方法的覆蓋

1.方法重載

方法重載實際上就是方法名相同,但是參數不同。

例如:

class Card
{
String cardNumber=null;
Card(){  }
Card(String cardNumber){
this.cardNumber=cardNumber;
}
2.方法覆蓋

類繼承過程中,子類方法跟父類方法名字相同,並且傳遞參數完全一樣,稱子類覆蓋父類的方法。

例如:

public class Demo1 extends Animal{

	void sound(){
		System.out.println("aaaa");
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Demo1 d= new Demo1();
		d.sound();
	}

}
class Animal{
	void sound(){
		System.out.println("wangwang");
	}
}



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