繼承 、過載、覆蓋的概念及其用法
阿新 • • 發佈:2018-12-17
一:繼承
1.繼承的概念:
是對現有的類加以利用,併為其新增新功能的一種有效途徑。通過繼承來重複使用原有的程式碼(再生),
一般需要保持“基礎類”不變,只是將這兒或哪兒的東西串聯起來,以達到預期的效果,然而,繼承並不是在現有類基礎上製造新類的唯一方法。
通過“合成”,即可將一個物件嵌入新類。
建一個A類:
class A{
//成員變數 其中num是實參
int num=0;
//成員方法,其中 i 是型參
public A(int i){
//輸入int型檔案輸出下面
System.out.println("aaaaaaaaaaaaaaaaaaa");
System.out.println("i= "+ i);
//把輸入的i賦值給成員變數num
num=i;
}
}
B繼承A:
class B extends A{
int num=0;
//成員方法B.
public B(){
//繼承類A的方法.因為B繼承了A必然繼承了A的特性.所以輸入int值10令方法實現.
super(10);
System.out.println("bbbbbbbbbbbbbbbbbbbb");
//這裡的num是類B的.
System.out.println("num= "+num);
//如果想顯示類A的num則需要用下列的super.num.這裡注意num在類A中需是成員變數才可以.
System.out.println("super.num= " +super.num);
}
}
建立測試類C:
public class C{
//main
public static void main(String aa[]){
//new 一個物件B()
new B();
}
}
2.子類和父類的關係:
一般來說子類的一個例項是父類的一個例項,但是父類的例項不是子類的例項,
但是父類的引用可以引用子類的例項,但是子類的引用不能引用父類的例項。
father a = new son() 這個是正確的
son a = new father()這個是不正確的
原因是:子類可以出現在父類能出現的任何地方,反之卻不行。 這樣寫的好處是:當父類引用指向子類物件的時候,就可以寫多型了。
father a = new son()
3.super的意義和用法:
super"的用法構造器和方法,都用關鍵字super指向超類,但是用的方法不一樣。方法用這個關鍵字去執行被過載的超類中的方法。看下面的例子:
class Mammal {
void getBirthInfo() {
System.out.println("born alive.");
}
}
class Platypus extends Mammal {
void getBirthInfo() {
System.out.println("hatch from eggs");
System.out.print("a mammal normally is ");
super.getBirthInfo();
}
二:過載
1.過載的定義:
過載:一個類中的方法與另一個方法同名,但是引數表不同,這種方法就是過載方法。
特點:過載可以在同一個類中定義功能類似的函式。
2.過載
public class TestMethod{
int a;float f;
public TestMethod(){//構造方法初始化
a=10;
f=1.0f;
}
public TestMethod(int a,float f){//構造方法帶參的過載
this.a=a;
this.f=f;
}
public void method(int b,float x) {//普通方法 }
public void method(int m,int n,float y) {//普通方法的過載 }
public static void main(String args[]){
//主方法測試
}
}
三:覆蓋
1.覆蓋的定義:
覆蓋:將父類方法從新寫入新的內容 特點:必須是父類擁有的方法。
2.覆蓋:
父類
public class father
{
public a()
{
System.out.print("我是父類的a方法");
}
public b()
{
System.out.print("我是父類b方法");
}
}
子類
public class son extends father
{
public a()
{
System.out.print("我是子類的a方法");
}
}