JAVA基礎學習20180106 繼承上

2021-08-14 09:47:47 字數 3169 閱讀 5780

1.繼承的概念

(1)一種類與類之間的關係

(2)使用已存在的類的定義作為基礎建立新類

(3)新類的定義可以增加新的資料或新的功能,也可以用父類的功能,但不能選擇性的繼承父類

(4)滿足「a is a b」的關係

2.繼承的特點

(1)利於**復用

(2)縮短開發周期

3.語法:

(1)使用extends實現繼承

class dog extends animal

(2)單一繼承,只能有乙個父類

4.繼承後的初始化順序

父類靜態成員子類靜態成員父類物件構造子類物件構造

5.super

(1)子類的構造過程中必須呼叫其父類的構造方法,預設呼叫無參的構造方法。

(2)如果子類構造方法中既沒有顯式標註,而父類又沒有無參的構造方法,則編譯出錯。

(3)使用super呼叫父類指定構造方法,必須在子類的構造方法第一行。

6.super和this

this: 當前類物件的引用

訪問當前類的成員方法

訪問當前類的成員屬性

訪問當前類的構造方法

不能在靜態方法中使用

super: 父類物件的引用

訪問父類的成員方法

訪問父類的成員屬性

訪問父類的構造方法

不能在靜態方法中使用

構造方法呼叫時,super和this不能同時出現

7.方法重寫和方法過載

方法重寫:

(1)在滿足繼承關係的子類中

(2)方法名、引數個數、順序、返回值與父類相同

(3)訪問修飾符的限定範圍大於等於父類方法

方法過載:

(1)在同乙個類中

(2)方法名相同

(3)引數個數、順序、型別不同

(4)返回值型別、訪問修飾符任意

8.訪問修飾符的訪問範圍和限定能力

9.**案例

package com.immoc.animal;

public

class

animal

//父類的構造不允許被繼承、不允許被重寫,但是會影響子類物件的例項化

public

animal()

public

animal (string name,int month)

public string getname()

public

void

setname(string name)

public

intgetmonth()

public

void

setmonth(int month)

public string getspecies()

public

void

setspecies(string species)

//吃東西

public

void

eat()

public

void

eat(string name)

}package com.immoc.animal;

public

class

catextends

animal

public

cat()

public

cat(string name,int month)

public

static

void

say()

public

double

getweight()

public

void

setweight(double weight)

//跑動的方法

public

void

run()

}package com.immoc.animal;

public

class

dogextends

animal

public string get***()

public

void

set***(string ***)

//睡覺的方法

public

void

sleep()

/** 方法過載:

* 1、在同乙個類中

* 2、方法名相同,引數列表不通(引數的順序、個數、型別)

* 3、方法返回值、訪問修飾符任意

* 4、與方法的引數名無關

* * 方法重寫

* 1、有繼承關係的子類中

* 2、方法名相同,引數列表相同(引數順序、個數、型別),方法返回值相同

* 3、訪問修飾符,訪問範圍需要大於等於父類的訪問範圍

* 4、與方法的引數名無關

* */

// private string sleep(string name)

// public void sleep(string name,int month)

// public void sleep(int month,string name)

// public void sleep(int name,string month)

//子類重寫父類吃東西的方法

public

void

eat()

public

void

eat(string month)

}package com.imooc.test;

import com.immoc.animal.animal;

import com.immoc.animal.cat;

import com.immoc.animal.dog;

public

class

test

}package com.imooc.test;

import com.immoc.animal.cat;

public

class

testtwo

}

java基礎學習

為了和公司的同事同步,換了個英文版本的eclipse 看下面一段程式 public class hello 顯示結果 helloword gaofeng helloword gaofeng helloword gaofeng helloword gaofeng helloword gaofeng h...

java基礎學習

抽象類不能new物件的,只能被子類繼承。如果抽象類中方法是抽象方法,那麼子類必須例項化此方法,否則不需要去此方法!抽象類沒有構造方法,也不能例項化.靜態變數,因為初始化的時候會在記憶體中開闢一塊地方儲存,所以不論對他進行什麼操作,都是對同乙個記憶體進行操作,也就是說對這個靜態變數操作的結果是會累加的...

java基礎學習

工作大概2年,面試總是有壓力,從頭開始看看,學學。基本資料型別 整形 byte,short,int,long。浮點型 fload,double。字元型 char。布林型 boolean。byte 用最多用8bit 表示最大數 127 自己理解的計算方法 1 1 1 1 1 1 1 1 8個1 第乙個...