super的使用方法与使用范围
如果你了解,用this是调用一个类里面的变量或者对象方法。那么super你可以理解为调用多态或者继承类中的构造方法和对象方法。在super调用构造方法时,只能调用带参的构造方法,这也是唯一调用其他类里面的构造方法的显性调用。不带参的父类构造方法可以在执行实例化子类时直接被隐性调用。
例子1:
class cam0
{
double size=10;
void printsize()
{
System.out.println(size);
}
}
class cam1 extends cam0
{
double size=20;
void printsize()
{
System.out.println(size);
System.out.println(super.size);
super.printsize();
}
}
public class cam2
{
public static void main(String args[])
{
cam1 m=new cam1();
m.printsize();
}
}
结果:
输出为
20.0
10.0
10.0
super调用m的父类cam0的成员和方法
super可以调用当前对象的父类对象的构造函数
注意: 子类调用父类的构造方法时,super语句必须是子类构造方法的第一句
例子2:
[java] view plain copy
class cam0
{
public cam0(int a,int b)
{
System.out.println("CS");
}
}
class cam1 extends cam0
{
public cam1()
{
super(1,1);
System.out.println("bbb");
}
public cam1(int a)
{
super(1,1);
System.out.println("ccc");
}
}
public class cam2
{
public static void main(String args[])
{
cam1 a=new cam1();
cam1 b=new cam1(1);
}
}
输出为
CS
bbb
CS
ccc
对象a,b分别调用了父类cam0的构造函数
super可以把当前对象的父类对象的引用作为参数传递给其他方法
这个用法和this把当前对象的引用作为参数传递给其他方法相似,这里就不赘述了
super的使用方法与使用范围的更多相关文章
- python中super的使用方法
说白了,super的使用就是要子类要调用父类的方法,我们就用super,那你要有调用的规范,我们明白这个规范就可以了. 在python2和python3中,调用方法不同,注意就是了.Python3.x ...
- Python中super()和__init__()方法
采用新式类,要求最顶层的父类一定要继承于object,这样就可以利用super()函数来调用父类的init()等函数, 每个父类都执行且执行一次,并不会出现重复调用的情况.而且在子类的实现中,不用到处 ...
- super.getClass()方法调用
下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] a ...
- super.getClass()方法
下面程序的输出结果是多少? importjava.util.Date; public class Test extends Date{ public static void main(String[] ...
- 【Java面试题】14 super.getClass()方法调用
下面程序的输出结果是多少? import java.util.Date; public class Test extends Date{ public static void main(String[ ...
- es6 class 中 constructor 方法 和 super
首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的. <1>constructor function Point(x, ...
- ES6之class 中 constructor 方法 和 super 的作用
首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的. function Point(x, y) { this.x = x; thi ...
- Java中super的几种使用方法并与this的差别
1. 子类的构造函数假设要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...
- 子类中执行父类的方法(引出super()与mro列表)
1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...
随机推荐
- Maven3.5.0安装与配置+Eclipse应用
Maven是一个优秀的构建工具(类似于 Ant, 但比 Ant 更加方便使用),能帮助我们自动化构建过程,从清理.编译.测试到生成报告,再到打包和部署.只需要输入简单的命令,Maven就可以帮我们处理 ...
- hadoop 2.7.1安装和配置
一.安装环境 硬件:虚拟机 操作系统:Centos 6.4 64位 IP:192.168.241.128主机名:admin安装用户:root 二.安装JDK 安装JDK1.7或者以上版本.这里安装jd ...
- System Generator 使用离散资源
System Generator 使用离散资源 重要,怎样配置FPGA中的DSP Macro 最后是编译模型
- XML 增、删、改
作为一个小型的数据存储传递的工具——XML,大家肯定也不陌生,今天就关于XML的一些简单操作做些总结. 这些都是在控制台进行操作的····· 1.创建XML 1)创建普通XML static void ...
- js控制html5 【video】标签中视频的播放和停止
需求:页面中有2个普通按钮a,b.还有一个video标签,能成功播放出视频..我想要的效果是,点击a按钮,视频开始播放,点击b按钮,视频播放停止!!!<br><br>----- ...
- 微信JS API PHP类
CURL操作类: <?php namespace app\common; class curl{ public static function wxcurl($getUrl){ $ch = cu ...
- 黄聪:Windows+PHP7+ImageMagick
需要Apache下才适用,Nginx没测试过~ Step1 把ImageMagick对应版本下载下来(ps: 我这里下载的是这个版本ImageMagick-6.9.3-7-vc14-x86.zip) ...
- TCP/IP学习20180626-数据链路层
数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过. ARP叫做地址解析协议,是 ...
- C#对Mongodb数组对象操作
Mongo对数据的存储非常随意,需要修改对象中的数组对象时,就会变得比较复杂. 类中的类对象可以直接通过“.”例如:Department.User.name 类中的对象User是数组时可以用Depar ...
- appium+python自动化 adb shell按键操作
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两 ...