日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java继承关键字super_java学习笔记-继承中super关键字

發布時間:2025/5/22 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java继承关键字super_java学习笔记-继承中super关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:

在java繼承的概念中我們得知,被聲明為私有的類成員對所屬的類來說仍然是私有的。類之外的任何代碼都不能訪問,包括子類。

super關鍵字的兩種用法:

1.用于調用超類的構造函數;

2.用于訪問超類中被子類的某個成員隱藏的成員;

例:使用super調用超類的構造函數

矩形實體代碼:

public class Rectangular {

private double width;

private double height;

Rectangular(double w,double h){

width=w;

height=h;

}

public double area(){

return width*height;

}

}

矩形子類RectangularArea代碼:

public class RectangularArea extends Rectangular{

public RectangularArea(double w,double h) {

super(w,h);

}

}

測試類DemoSuper代碼:

public class DemoSuper {

public static void main(String[] args) {

// TODO Auto-generated method stub

RectangularArea myboxBoxWeight=new RectangularArea(10, 20);

System.out.println("矩形的面積為:"+myboxBoxWeight.area());

}

}

實驗結果:

由實驗結果我們可知:使用super()成功的調用了父類Rectangular的構造方法,并調用了計算面積的方法area(),間接使用了父類中private成員變量。

ps:父類中的private成員變量還是不能被子類直接調用的,只是通過public方法間接使用了。

例:訪問超類中被子類成員隱藏的成員

上面的這句話聽起來很是繞口,所以我們通過實例來學習。

父類代碼:

public class A {

int i;

}

子類代碼:

public class B extends A{

int i;

B(int a,int b){

super.i=a;

i=b;

}

void show(){

System.out.println("i in superclass:"+super.i);

System.out.println("i in subclass:"+i);

}

}

測試類DemoSuper:

public class DemoSuper {

public static void main(String[] args) {

// TODO Auto-generated method stub

B b=new B(1,2);

b.show();

}

}

實驗結果:

盡管類B中的實例變量i隱藏了類A中的實例變量i,但是使用super可以訪問在超類中定義的實例變量i。當然也可以使用super調用被子類隱藏的方法。

ps:可以參見繼承中的方法重寫。

總結

以上是生活随笔為你收集整理的java继承关键字super_java学习笔记-继承中super关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。