package example;
//在子类构造对象时,访问子类构造函数时候,父类也运行。
//原因是:在子类的构造函数中第一行有一个默认的隐式语句super();
/*
 构造函数不能覆盖
 子类的实例化过程:子类中所有的构造函数默认都不能访问父类中空参数的构造函数。
 通过super();来调用。

为什么子类实例化的时候要访问父类中的构造函数呢?

是因为子类继承了父类,获取到了父类中的内容(属性),所以在使用父类内容之前,

要先看父类是如何对自己的内容进行初始化的。

所以子类在构造对象时,必须访问父类中的构造函数。

为了完成这个必须的动作,就在子类的构造函数中加入了super();语句。

如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确要调用

父类中的哪个构造函数。

注意:super();语句必须要定义在子类构造函数的第一行。因为父类的初始化动作

要先完成。
 */
class Fu{
 Fu(int x){
  System.out.println("fu run");
 }
}
class Zi extends Fu{
 Zi(){
  super(4);//调用的就是父类中的空参数的构造函数
  System.out.println("zi run");
 }
}
public class ExtendsDemo {
 public static void main(String[] args) {
  new Zi();
 }
}

class Fu{
 Fu(){
  System.out.println("A fu run");
 }
 Fu(int x){
  System.out.println("B fu run"+x);
 }
}
class Zi extends Fu{
 Zi(){
  super();//调用的就是父类中的空参数的构造函数
  System.out.println("Z zi run");
 }
 Zi(int x){
    super(); //输出的是A和D
  System.out.println("D Zi run"+x);
 }
}
public class ExtendsDemo {
 public static void main(String[] args) {
  new Zi(6);
 }
}

class Fu{
 Fu(){
  System.out.println("A fu run");
 }
 Fu(int x){
  System.out.println("B fu run"+x);
 }
}
class Zi extends Fu{
 Zi(){
  super();//调用的就是父类中的空参数的构造函数
  System.out.println("Z zi run");
 }
 Zi(int x){
  //super();
    super(x);//输出的是B和D
  System.out.println("D Zi run"+x);
 }
}
public class ExtendsDemo {
 public static void main(String[] args) {
  new Zi(6);
 }
}

super在构造函数中的运用的更多相关文章

  1. 为什么super()和this()调用语句不能同时在一个构造函数中出现的解释

    我想这应该是Java构造函数的一种机制吧,首先以子类和父类为例.当你创建一个子类的实例时,首先会调用父类的构造函数,然后再调用子类的构造函数,如果父类中没有缺省构造函数,则必须再子类的构造函数中显示的 ...

  2. 构造函数中的super和this的使用

    super用于调用父类构造函数的部分,其必须出现在构造函数的第一行.super在调用时第一件事就是去执行父类构造函数的部分,所执行的父类构造函数与super()括号中的参数相对应. this用于在一个 ...

  3. 关于构造函数中的this()和super()

    今天看到一个这段代码 public DataSourcePool(String driver, String url, String user, String pwd) throws Exceptio ...

  4. Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

    零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...

  5. 尝试解决在构造函数中同步调用Dns.GetHostAddressesAsync()引起的线程死锁

    (最终采用的是方法4) 问题详情见:.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长 看看在 Linux 与 Windows 上发生线程死锁的后果. Linux: Microsoft ...

  6. C++构造函数中不能调用虚函数

    在构造函数中调用虚函数,并不会产生多态的效果,就跟普通函数一样. c++ primer 第四版中497页15.4.5构造函数和析构中的虚函数讲到,如果在构造函数或析构函数中调用虚函数,则运行的是为构造 ...

  7. 关于在C#中构造函数中调用虚函数的问题

    在C#中如果存在类的继承关系,应避免在构造函数中调用虚函数.这是由于C#的运行机制造成的,原因如下: 新建一个类实例时,C#会先初始化该类(对类变量赋值,并将函数记在函数表中),然后再初始化父类.构造 ...

  8. 创建 PDO 实例并在构造函数中设置错误模式

    PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象.如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 ...

  9. C++中默认构造函数中数据成员的初始化

    构造函数的任务是初始化数据成员的,在类中,如果没有显示定义任何构造函数,编译器将为我们创建一个构造函数,称为合成的默认构造函数,合成的默认构造函数使用与变量初始化相同的规则来初始化成员.即当类中的数据 ...

随机推荐

  1. javascript数组、对象和Null的typeof同为object,区分解决办法

    在JS里typeof 大家用的很多,可以使对于数组.对象和Null无法区分的问题,看了看犀牛书还是有解决办法的. document.writeln(typeof "abc"); / ...

  2. 趋势:Chrome为打包应用提供强大新特性

    Chrome 7月9日刚为Chrome打包的应用提供了强大的访问Google服务例如Google统计.GoogleAPI和Google 钱包的能力,除此之外,还能够使用系统层面的服务包括蓝牙和原生应用 ...

  3. WebView 实现MiniBrowser

    package org.hjw.minibrowser; import android.os.Bundle; import android.app.Activity; import android.v ...

  4. VS2012编译LibZip库

    LibZip库是解压缩zip文件的C库. 中文的网站目前还没有找到相关的编译方法,找了一篇英文文档加上自己的实验修改了一下: 编译步骤如下: 首先先下载CMake,我下载的是2.8版本. libzip ...

  5. 关于ABP聚合根类AggregateRoot的思考

    AggregateRoot和Entity的区别 AggregateRoot继承于Entity,并实现了IGeneratesDomainEvents接口 public class AggregateRo ...

  6. CodeForces 645C Enduring Exodus

    枚举,三分. 首先,这$n+1$个人一定是连续的放在一起的.可以枚举每一个起点$L$,然后就是在$[L,R]$中找到一个位置$p$,使得$p4最优,因为越往两边靠,距离就越大,在中间某位置取到最优解, ...

  7. OpenVPN客户端证书合并到配置文件中

    这里只讲OpenVPN客户端证书合并到配置文件中,避免文件太多,管理不便! 生成的客户端证书和配置文件,客户端需要的一共有5个文件:ca.crt.client.crt.client.key.ta.ke ...

  8. ng1 http 读取json数据

    在前端开发过程中,有时后端还没开发出接口,需要经常自己构造获取本地mock数据. AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服 ...

  9. ORM了解

    1.hibernate通过读取Hibernate.cfg.xml文件创建SessionFactory,并通过SessionFactory创建Session(开始使用要打开,使用结束要关闭);通过Ses ...

  10. FileOutputStream flush()

    FileOutputStream 继承 OutputStream ,flush方法查看源码方法体为空,所以flush没起到清除缓存的作用 改用BufferedOutputStream再调用flush( ...