- 前言
- 1. 三大特性概述
- 2. 封裝
- 3. 繼承
- 4. 多態
- 結語
#include<GUIQU.h>
int main {
上期回顧:【Java筆記】第7章:面向對象
個人主頁:C_GUIQU
歸屬專欄:【Java學習】
return 一鍵三連;
}
前言
各位小伙伴大家好!上期小編給大家講解了Java中的面向對象,接下來講講Java中面向對象的三大特性!
1. 三大特性概述
Java中面向對象的三大特性是封裝(Encapsulation)、繼承(Inheritance)和多態(Polymorphism)。這些特性是Java編程語言中實現面向對象編程(OOP)的核心概念。
- 封裝(Encapsulation):
- 封裝是指將數據(屬性)和操作數據的方法(行為)封裝在一起,形成一個不可分割的整體。
- 在Java中,封裝通過訪問修飾符(如
public
、private
、protected
和default
)來實現,用于控制類成員(屬性和方法)的訪問級別。 - 封裝的目的是保護對象的內部狀態不被外部直接訪問,只能通過公共接口(方法)來訪問和修改。
- 繼承(Inheritance):
- 繼承是指一個類(子類)可以繼承另一個類(父類)的屬性和方法。
- 在Java中,繼承通過
extends
關鍵字來實現,子類可以擴展父類的功能,也可以覆蓋父類的方法以提供新的實現。 - 繼承的目的是代碼復用和擴展,子類可以重用父類的代碼,同時添加新的屬性和方法。
- 多態(Polymorphism):
- 多態是指允許不同類的對象對同一消息做出響應,即同一操作作用于不同的對象時可以有不同的解釋和行為。
- 在Java中,多態通常通過接口(interface)和繼承來實現。
- 多態的目的是提高代碼的靈活性和可擴展性,允許程序在不修改現有代碼的情況下,添加新的功能和行為。
這三大特性使得Java成為了一個強大的面向對象編程語言,它們允許開發者以更接近現實世界的方式思考和解決問題。通過封裝,我們可以隱藏對象的內部實現細節,只暴露必要的接口;通過繼承,我們可以重用和擴展已有的代碼;通過多態,我們可以編寫更靈活、可擴展的代碼。
2. 封裝
封裝是面向對象編程中的一個核心概念,它將數據(屬性)和操作數據的方法(行為)組合在一起,形成一個不可分割的整體。封裝的目的是保護對象的內部狀態不被外部直接訪問,只能通過公共接口(方法)來訪問和修改。在Java中,封裝通過訪問修飾符(如public
、private
、protected
和default
)來實現。
【訪問修飾符】
在Java中,有四種訪問修飾符:
- public:公共的,可以被任何類訪問。
- private:私有的,只能被同一個類的其他方法訪問。
- protected:受保護的,可以被同一個包中的類訪問,或者被子類訪問。
- default(不寫):默認的,可以被同一個包中的類訪問。
【封裝的實現】
封裝的實現主要通過以下幾種方式:
- 屬性私有化:將類的屬性設置為私有,只允許類內部的方法訪問和修改。
public class Person {private String name;private int age;public void setName(String name) {this.name = name;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;} }
- 方法公開化:將類的屬性的設置和獲取方法設置為公開,以供外部使用。
- 構造方法:在類中定義構造方法,用于在創建對象時初始化對象的屬性。
public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public void setName(String name) {this.name = name;}public String getName() {return name;}public void setAge(int age) {this.age = age;}public int getAge() {return age;} }
【封裝的好處】
封裝有以下幾個好處:
- 保護對象的狀態:通過將屬性設置為私有,可以防止外部直接修改對象的內部狀態,從而保護對象的一致性和完整性。
- 提高代碼的可讀性和可維護性:通過公開的接口(方法)來訪問和修改對象的屬性,可以使代碼更易于理解和維護。
- 實現代碼的復用:通過繼承和多態,可以重用已有的代碼,并在此基礎上添加新的功能和行為。
- 提高系統的靈活性和可擴展性:通過封裝,可以更容易地添加新的功能和行為,而不需要修改現有的代碼。
封裝是面向對象編程中非常重要的一個概念,它可以幫助開發者創建更可靠、可維護和可擴展的代碼。
3. 繼承
繼承是面向對象編程中的一個核心概念,它允許一個類(子類)繼承另一個類(父類)的屬性和方法。繼承的目的是代碼復用和擴展,子類可以重用父類的代碼,同時添加新的屬性和方法。在Java中,繼承通過extends
關鍵字來實現。
【繼承的實現】
在Java中,繼承的實現主要通過以下幾個步驟:
-
聲明繼承關系:在子類中使用
extends
關鍵字來聲明它繼承自父類。public class Animal {void makeSound() {System.out.println("Animal makes a sound");} } public class Dog extends Animal {void makeSound() {System.out.println("Dog barks");} }
在這個例子中,
Dog
類繼承了Animal
類,并覆蓋了makeSound
方法以提供特定的實現。 -
繼承屬性和方法:子類可以繼承父類的屬性和方法,包括私有屬性和方法。
-
重寫父類方法:子類可以覆蓋(override)父類的方法,以提供新的實現。覆蓋的方法必須具有相同的名稱、返回類型和參數列表。
public class Animal {void makeSound() {System.out.println("Animal makes a sound");} } public class Dog extends Animal {@Overridevoid makeSound() {System.out.println("Dog barks");} }
在這個例子中,
Dog
類覆蓋了Animal
類的makeSound
方法。 -
添加新屬性和方法:子類可以添加新的屬性和方法,以擴展父類的功能。
public class Animal {void makeSound() {System.out.println("Animal makes a sound");} } public class Dog extends Animal {void bark() {System.out.println("Dog barks");} }
在這個例子中,
Dog
類添加了一個新的方法bark
。
【繼承的好處】
繼承有以下幾個好處:
- 代碼復用:子類可以重用父類的代碼,避免重復編寫相同的代碼。
- 擴展功能:子類可以擴展父類的功能,添加新的屬性和方法。
- 提高可讀性和可維護性:通過繼承,可以創建一個層次化的類結構,使得代碼更易于理解和維護。
- 實現多態:繼承是實現多態的基礎,通過繼承,可以創建具有相同接口的類,從而實現多態。繼承是面向對象編程中非常重要的一個概念,它可以幫助開發者創建更可靠、可維護和可擴展的代碼。
4. 多態
多態是面向對象編程中的一個核心概念,它允許不同類的對象對同一消息做出響應,即同一操作作用于不同的對象時可以有不同的解釋和行為。在Java中,多態通常通過接口(interface)和繼承來實現。多態的目的是提高代碼的靈活性和可擴展性,允許程序在不修改現有代碼的情況下,添加新的功能和行為。
【多態的實現】
多態的實現主要通過以下幾種方式:
- 接口(interface):
- 接口是一組抽象方法的集合,用于定義一組行為。
- 類可以通過實現接口來繼承接口的方法。
- 接口中的方法都是抽象的,沒有具體的實現。
- 實現接口的類必須提供接口中所有方法的實現。
public interface Flyable {void fly(); } public class Bird implements Flyable {public void fly() {System.out.println("Bird flies");} } public class Plane implements Flyable {public void fly() {System.out.println("Plane flies");} } public class PolyTest {public static void main(String[] args) {Flyable flyer1 = new Bird();Flyable flyer2 = new Plane();flyer1.fly(); // 輸出 "Bird flies"flyer2.fly(); // 輸出 "Plane flies"} }
- 繼承(Inheritance):
- 子類可以覆蓋(override)父類的方法,以提供新的實現。
- 覆蓋的方法必須具有相同的名稱、返回類型和參數列表。
- 子類對象可以作為父類類型的引用,從而實現多態。
public class Animal {void makeSound() {System.out.println("Animal makes a sound");} } public class Dog extends Animal {@Overridevoid makeSound() {System.out.println("Dog barks");} } public class PolyTest {public static void main(String[] args) {Animal animal = new Dog();animal.makeSound(); // 輸出 "Dog barks"} }
【多態的實現】
多態有以下幾個好處:
- 提高代碼的靈活性和可擴展性:通過多態,可以創建一個靈活的代碼結構,使得程序在不修改現有代碼的情況下,添加新的功能和行為。
- 實現代碼復用:通過繼承和接口,可以重用已有的代碼,并在此基礎上添加新的功能和行為。
- 提高代碼的可讀性和可維護性:通過多態,可以創建一個層次化的類結構,使得代碼更易于理解和維護。
多態是面向對象編程中非常重要的一個概念,它可以幫助開發者創建更可靠、可維護和可擴展的代碼。
結語
至此,Java面向對象的三大特性講解完畢。
感謝您的觀看!互三必回!持續更新中~!