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 第乙個...