1. 程式人生 > >繼承 、過載、覆蓋的概念及其用法

繼承 、過載、覆蓋的概念及其用法

一:繼承

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方法");
 }
}