java学习笔记-继承中super关键字
来源:互联网 发布:ubuntu 强制关闭vim 编辑:程序博客网 时间:2024/06/05 00:57
背景:
在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 stubRectangularArea 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 stubB b=new B(1,2);b.show();}}实验结果:
尽管类B中的实例变量i隐藏了类A中的实例变量i,但是使用super可以访问在超类中定义的实例变量i。当然也可以使用super调用被子类隐藏的方法。
ps:可以参见继承中的方法重写。
- java学习笔记-继承中super关键字
- java学习之继承与super关键字
- java继承中super关键字的用法
- Java学习笔记之Super关键字学习。
- JAVA学习笔记12——super关键字+继承的内存分析+组合
- Java 学习笔记(0x08) super关键字
- 【JavaSE学习笔记】面向对象_继承、super关键字
- 【学习笔记】Super关键字
- 23 java 继承 super 关键字
- 【Java笔记】super 关键字
- Java学习笔记之继承和接口(一) super关键字、final关键字、abstract类和方法
- java中的继承,继承中方法的重写,继承的初始化顺序,final关键字,super关键字
- Java中super关键字
- Java中 super关键字
- java中super关键字
- 黑马程序员 java学习笔记之一(java中this和super关键字的用法)
- 学习prototypejs中的继承实现机制(二):让$super更像java中的super关键字
- JAVA第七节-继承,继承中方法重写,继承的初始化顺序,final关键字,super关键字,object类
- c语言中可变参数函数的设计(转)
- 算法总结系列之六: 桶排序(Bucket Sort)
- TCP关闭连接
- PageContent
- 《TCPIP详解卷一》第二章(链路层)学习笔记
- java学习笔记-继承中super关键字
- windows程序设计 文字和字体
- disjont-set
- linux给虚拟机添加内存
- linux命令--下查看linux版本
- AES加密算法
- Datalist数据绑定分页
- git-daemon的快捷搭建
- Unity 中使用C#的序列化和反序列化处理游戏数据