Java面向對象的三大特點


Java面向對象的三大特點:繼承、封裝、多態

  繼承

繼承的起源

使用“is a”關系判斷繼承

Java中繼承的實現

關鍵字:extends

實例化子對象

單繼承和多繼承

子類繼承父類、父類還可以繼承上一個類,稱為傳遞繼承。

Dog extends Animal;

 Animal extends ShengWu;

所有類的根類Object

即object類是所有類的父類,object中所有的方法其他類都可以直接調用

方法重寫

 父類方法   Public void jiao(){system.out.print(“叫”)}

子類方法    Public void jiao(){system.out.print(“汪汪叫”)}

super關鍵字

super. 父類屬性

this關鍵字

this.當前類屬性

final關鍵字

 final所修飾的類不可以被繼承;所修飾的方法不可以被重寫  

實例化過程

調用父類的構造器

  封裝

訪問修飾符

Public公共的:在任何一個地方都可以調用

protected  受保護的:在同意包中可以訪問,或者不同胞中原類的子類中可以調用

default 默認的:同一包中可以使用,不寫出修飾符

private 私有的:只有當前類可以使用

封裝可以提高代碼的重用性,提高代碼的可移植性,可以隱藏實現細節

 修飾類只能是public或者default

理解靜態成員

static 靜態的

靜態方法不能訪問實例成員

靜態初始化塊

    static{

        語句體;

     }

實例初始化塊

靜態塊在對象實例化的時候只會執行一次,所以可以用來給定對象的初始值

Javabean原則:實體類屬性通常使用private修飾,通過set和get函數去設置和獲取數據。

  多態

 向上轉型自動轉換  例如:Animal dog=new Dog();

父類對象的引用指向了子類對象的實例,向上轉型后子類多特有的屬性和方法就無效了。

如果子類重寫了父類的方法,則調用子類的方法。

向下轉型,類型還原      例如:Animal animal=new Dog();

子類特有的屬性和方法就還原了  Dog dog=(Dog)animal;

instanceof           animal instanceof   Dog

在多態中,子類可以調用父類的所有方法(父類私有方法除外)。

abstract抽象的,不具備實際功能實現的,用來規范子類,只能修飾方法,抽象方法只能定義在抽象類里面,抽象類不能被實例化。子類必須實現這個方法,即子類必須重寫父類的抽象方法。

public abstract class Animal{   代碼體         }

  接口

接口里面都是抽象方法,接口必定是抽象類

接口聲明

    public interface 接口名{          }

接口實現

    接口需要重新定義一個類來實現里面的方法

    public class 類名 implements 接口名

    如果是子類來實現接口:

    public class 子類名 extends 父類名 implements 接口名{  }

接口應用

接口可以用於暴露類的行為,允許類的用戶通過接口的實現來使用接口中的方法。

接口可以用於強制一個類具有某些行為。

在接口中聲明成員變量

接口可以包含成員變量,但是成員變量只能用static和final關鍵字共同來修飾。由於接口不能被實例化,所以成員變量必須被聲明為static,而聲明為final是為了程序的可靠性。

Final屬性在聲明時就必須賦值。

接口繼承

    接口的繼承同樣是通過關鍵字extends

    接口可以同時有多個。 implements 接口1,接口2…接口n

接口與多態

接口與抽象類的區別

    二者都不能被實例化,用於被其他類實現或者繼承。

    二者都可以包含抽象方法,實現接口或者繼承抽象類的子類都必須實現這些抽象方法。

區別:接口只能包含抽象方法,而抽象類可以包含普通方法。

      接口不能定義靜態方法,而抽象類可以定義。

      接口只能定義靜態常量屬性,不能定義普通屬性。而抽象類可以定義普通屬性,也可以定義靜態常量屬性。

     接口不包含構造器。抽象類里面的構造器做初始化工作。

     接口中不包含初始化塊。而抽象類可以包含初始化塊。

一個類最多只有一個直接父類,包括抽象類;但是一個類可以直接實現多個接口,通過實現多個接口來彌補java單繼承的不足。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM