如果你了解,用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的使用方法与使用范围的更多相关文章

  1. python中super的使用方法

    说白了,super的使用就是要子类要调用父类的方法,我们就用super,那你要有调用的规范,我们明白这个规范就可以了. 在python2和python3中,调用方法不同,注意就是了.Python3.x ...

  2. Python中super()和__init__()方法

    采用新式类,要求最顶层的父类一定要继承于object,这样就可以利用super()函数来调用父类的init()等函数, 每个父类都执行且执行一次,并不会出现重复调用的情况.而且在子类的实现中,不用到处 ...

  3. super.getClass()方法调用

    下面程序的输出结果是多少?import java.util.Date;public class Test extends Date{public static void main(String[] a ...

  4. super.getClass()方法

    下面程序的输出结果是多少? importjava.util.Date; public class Test extends Date{ public static void main(String[] ...

  5. 【Java面试题】14 super.getClass()方法调用

    下面程序的输出结果是多少? import java.util.Date; public class Test extends Date{ public static void main(String[ ...

  6. es6 class 中 constructor 方法 和 super

    首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的. <1>constructor function Point(x, ...

  7. ES6之class 中 constructor 方法 和 super 的作用

    首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的. function Point(x, y) { this.x = x; thi ...

  8. Java中super的几种使用方法并与this的差别

    1.     子类的构造函数假设要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...

  9. 子类中执行父类的方法(引出super()与mro列表)

    1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...

随机推荐

  1. 基于CRF序列标注的中文依存句法分析器的Java实现

    这是一个基于CRF的中文依存句法分析器,内部CRF模型的特征函数采用 双数组Trie树(DoubleArrayTrie)储存,解码采用特化的维特比后向算法.相较于<最大熵依存句法分析器的实现&g ...

  2. Spring Cloud Eureka 服务治理

    Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务 ...

  3. cpu怎么实现运算的

      这么好玩的问题,没人回答说不过去.不懂电子元件的码农我要强答一发了.太学术的我不会,你们也听不懂.所以臭不要脸非常不严谨地科普一记.说错不许打我.另外关于这个问题,推荐<编码 (豆瓣)> ...

  4. 【java】类的初识

    面向过程思想:强调的是功能行为 面向对象思想:不自己亲自做,将功能封装为对象,强调具备功能的对象,指挥对象实现各种功能.以后开发实际就是找对象使用对象,要是对象没有就创建对象并维护对象. 面向对象的三 ...

  5. 【java_需阅读】Java中static关键字用法总结

    1.     静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法. · 它 ...

  6. Team Foundation Server 2010简体中文版

    文件名称:Team Foundation Server 2010简体中文版 文件大小:1.8 GBhttp://www.google.com/profiles/dedecms.com 下载地址: th ...

  7. 简单说throw和throws的区别

    1. 区别 throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指抛出的一个具体的异常类型. 2.分别介绍 ...

  8. C/C++基础----特殊工具和技术 (重载new和delete,RTT,限定作用域的枚举类型,类成员指针,嵌套类,局部类,volatile,链接指示 extern “C”)

    重载new和delete 1调用operator new( 或new[])标准库函数分配足够大的.原始的.未命名的内存空间以便存储特定类型的对象 2编译器运行相应地构造函数以构造这些对象,并为其传入初 ...

  9. C++进阶--命名空间和关键字using

    //############################################################################ /* * C++关键字:using * * ...

  10. 微信小程序客服消息使用

    客服消息使用 为丰富小程序的服务能力,提高服务质量,微信为小程序提供客服消息能力,以便小程序用户可以方便快捷地与小程序服务提供方进行沟通. xiaokefu.com.cn 功能介绍 用户可使用小程序客 ...