1.每個類檔案最多隻允許出現乙個public類,如果有public類,則檔名和該類名必須相同。
2.如果沒有定義構造器,編譯器會自動建立無參構造器,如果顯示定義了構造器,編譯器不會自動新增構造器,所有構造器預設static。
3.初始化:(1)生成某個類的物件時,jvm先檢查是否載入了這個類,如果沒有載入,則先載入再生成物件,如果已經載入,則直接生成物件。類按需載入,用不到時不會載入,並且多次使用該類時,只載入一次。(2)類載入時,父類的構造器呼叫和初始化在子類前,類的static成員變數會被初始化,如果有static語句塊,則會和static成員變數一起被執行。(3)生成物件時,先初始化物件的成員變數,再執行構造器,即是變數在**塊中的順序在構造器之後。
public
class test
}class meal
bread bread = new bread();//第一步,首先初始化此變數
}class bread
}
private只有本類可以訪問;
default與本類同包的所有類都可以訪問;
protected與本類同包的類及其他包中的子類都可以訪問;
public所有類都可以訪問;
extends關鍵字表示繼承,沒有指出繼承哪個類時,隱式繼承object類。
乙個子類最多只能顯示繼承乙個父類,乙個父類可以被多個子類繼承。
1.子類繼承父類的成員變數:只能繼承public和protected成員變數,不能繼承private成員變數;對default成員變數,當子類在父類包中才能訪問;如果子類成員變數和父類的同名,則隱藏父類的成員變數,如果還想訪問同名的父類成員變數,使用super關鍵字。
2.子類繼承父類的方法:只能繼承public和protected成員方法,不能繼承private方法;對default成員方法,當子類在父類包中才能訪問;如果子類成員方法和父類的同名,則覆蓋父類的成員方法,如果還想訪問父類成員方法,使用super關鍵字。
3.構造器:子類不能繼承父類構造器方法,如果父類構造器都是帶參的,子類構造器必須使用super呼叫父類構造器,如果父類有顯式的無參構造器,則子類不必須使用super。
super用法:super.成員變數/super.成員方法,這種方式用來呼叫父類的同名成員變數和方法;super(引數),這種方式用來在子類的構造器中顯示呼叫父類的構造器,必須在子類構造器的第一句。
關於覆蓋和隱藏參考
public
class test
}class shape
public
void
printtype()
public
static
void
printname()
}class circle extends shape
public
void
printtype()
public
static
void
printname()
}shape constructor
circle constructor
shape
this
is circle
shape
JAVA基礎 繼承
1.什麼是繼承?繼承 extends 是從已有的類中 父類 派生出新的類 子類 子類具有父類的屬性和行為,並可以在父類的基礎上增加新的屬性 行為。例如 public class people public class student extends people 父類people具有 name ag...
Java基礎 繼承
1.方法重寫概念 子父類成員方法的特殊情況 覆蓋 子類中出現與父類一某一樣的方法時,會出現覆蓋操作,也稱之為 override重寫 複寫或者覆蓋.通俗的說就是子類要使用父類中的功能,同時自己又有自己特有的功能.重寫需要注意的問題 子類方法覆蓋父類方法,必須要保證許可權大於等於父類的許可權.許可權有四...
JAVA基礎 繼承
1.繼承使用關鍵字extends表示。表示 class 派生類的類名 extends 基類名 定義自己的方法 2.繼承是一種共享機制,派生類 子類 共享基類 父類 的資料和方法。只能是單向的,不存在基類繼承派生類的現象。派生類的成分包含基於繼承的資料和方法和自已定義的資料和方法。3.派生類可以繼承基...