JAVA有三大特性:封裝,繼承和多型
一、 封裝
-
封裝就是將類的資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類的方法實現對隱藏資訊的操作和訪問。
-
封裝的實現
a. 需要修改屬性的訪問控制符(修改為private);
b. 建立getter/setter方法(用於屬性的讀寫);
c. 在getter/setter方法中加入屬性控制語句(用於判斷屬性值的合法性);
1 public class Student{ 2 private float score; 3 public void setScore(float score){ 4 this.score = score; 5 } 6 public float getScore(){ 7 return score; 8 } 9 }
二、 繼承
繼承是類與類的一種關係,比較像集合中的從屬於關係。比如說,狗屬於動物。就可以看成狗類繼承了動物類,那麼狗類就是動物類的子類(派生類),動物類就是狗類的父類(基類)。在Java中是單繼承的,也就是說一個子類只有一個父類。
1 //父類:動物類 2 public class Animal{ 3 public int age; 4 public String name; 5 public void eat(){ 6 System.out.println("動物吃東西!"); 7 } 8 } 9 //子類:狗類 10 public class Dog extends Animal { 11 12 }
三、 多型
多型指的是物件的多種形態。多型有兩種:引用多型和方法多型。繼承是多型的實現基礎。
1.引用多型
父類的引用可以指向本類的物件;父類的引用可以指向子類的物件。
1 //父類:動物類 2 public class Animal{ 3 public int age; 4 public String name; 5 public void eat(){ 6 System.out.println("動物吃東西!"); 7 } 8 } 9 //子類:狗類 10 public class Dog extends Animal { 11 12 } 13 //測試類 14 public class Test{ 15 public static void main(String[] args) { 16 //父類的引用可以指向本類的物件 17 Animal ani1 = new Animal(); 18 //父類的引用可以指向子類的物件 19 Animal ani2 = new Dog(); 20 } 21 }
- 方法多型
建立父類物件時,呼叫的方法為父類方法;
建立子類物件時,呼叫的方法是子類重寫的方法或繼承自父類的方法;
1 //父類:動物類 2 public class Animal{ 3 public int age; 4 public String name; 5 public void eat(){ 6 System.out.println("動物吃東西!"); 7 } 8 } 9 //子類:狗類 10 public class Dog extends Animal { 11 public void eat(){ 12 System.out.println("狗吃肉。"); 13 } 14 } 15 //測試類 16 public class Test{ 17 public static void main(String[] args) { 18 //父類的引用可以指向本類的物件 19 Animal ani1 = new Animal(); 20 //父類的引用可以指向子類的物件 21 Animal ani2 = new Dog(); 22 //輸出動物吃東西 23 ani1.eat(); 24 //輸出狗吃肉 25 ani2.eat(); 26 } 27 }
注意:不允許通過父類的引用呼叫子類獨有的方法。