Java super關鍵字的用法詳解
super關鍵字作用:在子類內部調用父類對象
基礎語法:
1.在類的繼承中,當子類繼承了父類, 在構造子類的時候,一定要先幫助父類進行構造;
2. 調用super()必須寫在子類構造方法的第一行,以保證在執(zhí)行任何動作前,對象已經(jīng)完成了初始化,否則編譯不通過。每個子類構造方法的第一條語句,都是隱含地調用super(),如果父類沒有這種形式的構造函數(shù),那么在編譯的時候就會報錯。
super關鍵字的三種用法:
1. super.成員變量
class Person{
public String name; //成員變量
public Person(String name) {
this.name = name;
}
}
class Student extends Person{
String name = "student";
public Student(String name) {
super(name);
}
public void help() {
//調用父類的成員屬性
System.out.println(name); //student 直接使用,優(yōu)先使用局部變量
System.out.println(super.name); // B 直接使用父類的成員變量
}
}
public class s {
public static void main(String[] args) {
Student p = new Student("B");
p.help();
}
}
2. super.成員方法
class {
public String name;
public Person(String name) {
this.name = name; //Test
}
public void help() {
System.out.println(this.name+"Person");
}
}
class Student extends Person{
String name = "student";
public Student(String name) {
super(name); //Test
}
public void help() {
//調用父類的成員方法
super.help();
System.out.println(this.name+"Student"); //Student this調用的式同類中的變量
}
}
public class s {
public static void main(String[] args) {
Student p = new Student("Test");
p.help();
}
}
//Test Person
//student Student
3. super():調用父類中的構造方法
3.1.1 隱式調用父類無參數(shù)構造方法super()
如果父類是無參構造,那么子類的構造方法會默認隱式的在第一行先調用父類無參數(shù)構造方法,所以super()無需手動進行調用;
public class Father{
int id;
public Father(){
System.out.println("父類構造方法");
}
}
public class Son extends Father{
public Son(){
//super(); //系統(tǒng)會默認生成,可有可無
System.out.println("子類構造方法");
}
}
public class Test{
public static void main(String[] args){
Son s = new Son();
}
}
//print:
//父類構造方法
//子類構造方法
3.1.2 顯式調用父類有參數(shù)構造方法super(id)
如果父類是含參構造,那么此時因為父類中沒有無參數(shù)構造方法,所以子類繼承父類時會報錯,這時就需要我們手動的調用父類的有參構造方法super(id);
public class Father{
int id;
public Father(int id){
System.out.println("父類構造方法");
}
}
public class Son extends Father{
public Son(int id){
super(id); //手動調用父類的有參構造方法
System.out.println("子類構造方法");
}
}
public class Test{
public static void main(String[] args){
Son s = new Son(1);
}
}
//print:
//父類構造方法
//子類構造方法
到此這篇關于Java super關鍵字的用法詳解的文章就介紹到這了,更多相關Java super內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java核心編程之文件隨機讀寫類RandomAccessFile詳解
這篇文章主要為大家詳細介紹了Java核心編程之文件隨機讀寫類RandomAccessFile,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
SpringBoot創(chuàng)建maven多模塊項目實戰(zhàn)代碼
本篇文章主要介紹了SpringBoot創(chuàng)建maven多模塊項目實戰(zhàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
Spring Cloud Gateway 獲取請求體(Request Body)的多種方法
這篇文章主要介紹了Spring Cloud Gateway 獲取請求體(Request Body)的多種方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
SpringBoot整合Caffeine實現(xiàn)本地緩存的實踐分享
緩存是提升系統(tǒng)性能的一個不可或缺的工具,通過緩存可以避免大部分重復的請求到數(shù)據(jù)庫層,減少IO鏈接次數(shù),提升整體的響應速率,本地緩存中比較常見的比如 Caffeine 緩存,這篇文章將結合具體的 Springboot 項目搭配 Caffeine 實現(xiàn)本地緩存的各種使用方式2024-07-07

