1. 程式人生 > >java學習筆記(八):繼承

java學習筆記(八):繼承

this關鍵字 log implement java學習 方式 show 使用 類型 多繼承

繼承

  • 子類擁有父類非private的屬性,方法。

  • 子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。

  • 子類可以用自己的方式實現父類的方法。

  • Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關系就是C類是B類的父類,B類是A類的父類,這是java繼承區別於C++繼承的一個特性。

  • 提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系)。

extends關鍵字:在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。

 1 public class Animal { 
 2     private String name;   
 3     private int id; 
 4     public Animal(String myName, String myid) { 
 5         //初始化屬性值
 6     } 
 7     public void eat() {  //吃東西方法的具體實現  } 
 8     public void sleep() { //睡覺方法的具體實現  } 
 9 } 
10  
11 public class Penguin  extends  Animal{ 
12 }

implements 關鍵字:使用 implements 關鍵字可以變相的使java具有多繼承的特性,使用範圍為類繼承接口的情況,可以同時繼承多個接口(接口跟接口之間采用逗號分隔)。

 1 public interface A {
 2     public void eat();
 3     public void sleep();
 4 }
 5  
 6 public interface B {
 7     public void show();
 8 }
 9  
10 public class C implements A,B {
11 }

super關鍵字:

我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。

this關鍵字:指向自己的引用。

 1 class Animal{
 2     void eat(){
 3         System.out.println("animal eat");
 4     }
 5 }
 6 
 7 class Dog extends Animal{
 8     void eat(){
 9         System.out.println("dog eat");
10     }
11     void eatTest(){
12         this.eat(); // this 調用自己的方法
13         super.eat();// super 調用父類方法
14     }
15 }
16 
17 public class Test {
18     public static void main(String[] args){
19         Animal animal = new Animal();
20         animal.eat();
21         System.out.println("---------------");
22         Dog dog = new Dog();
23         dog.eat();
24         System.out.println("---------------");
25         dog.eatTest();
26     }
27 }

運行輸出:

animal eat
---------------
dog eat
---------------
dog eat
animal eat

final 關鍵字:聲明類可以把類定義為不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫:

聲明方法:

修飾符(public/private/default/protected) final 返回值類型 方法名(){//方法體}

java學習筆記(八):繼承