在创建子类的对象时,jvm会首先执行父类的构造方法,然后再执行子类的构造方法,如果是多级继承,会先执行最顶级父类的构造方法,然后依次执行各级个子类的构造方法

package com.my.test;

public class Son extends Father{

SonProp r=new SonProp();

public Son()

{

System.out.println(" Son is construct");

}

public static void main(String[] args)

{

new Son();

}

}

class SonProp

{

public SonProp()

{

System.out.println(" SonProp is construct");

}

}

class FatherProp

{

public FatherProp()

{

System.out.println(" FatherProp is construct");

}

}

class Father

{

FatherProp sonProp=new FatherProp();

public Father()

{

System.out.println(" Father is construct");

}

}

执行结果为:

FatherProp is construct

Father is construct

SonProp is construct

Son is construct

java继承中对构造函数是不继承的。

以下是例子:

public class FatherClass {

public FatherClass() {

System.out.println(100);

}

public FatherClass(int age) {

System.out.println(age);

}

}

public class SonClass extends FatherClass{

public SonClass() {

}

public SonClass(int c) {

System.out.println(1234);

}

public static void main(String[] args) {

FatherClass f = new FatherClass(28);

SonClass s = new SonClass(66);

}

}

编译后执行结果如下是什么呢?

分析:1. FatherClass f = new FatherClass(28);这句没有必要解释

2.SonClass s = new SonClass(66);执行这句时,调用

public SonClass(int c) {

System.out.println(1234);

}

在这个构造函数中,等价于

public SonClass(int c) {

super();//必须是第1行,否则不能编译

System.out.println(1234);

}

所以结果是 100

1234

3.如果子类构造函数是这样写的

public SonClass(int c) {

super(22);//必须是第1行,否则不能编译

//显示调用了super后,系统就不再调用super();

System.out.println(1234);

}

执行结果是 22

1234

总结1:构造函数不能继承,只是调用而已。

如果父类没有无参构造函数

创建子类时,不能编译,除非在构造函数代码体中第一行,必须是第一行显示调用父类有参构造函数

如下:

SonClass (){

super(777);//显示调用父类有参构造函数

System.out.println(66);

}

如果不显示调用父类有参构造函数,系统会默认调用父类无参构造函数super();

但是父类中没有无参构造函数,那它不是不能调用了。所以编译就无法通过了。

总结2:创建有参构造函数后,系统就不再有默认无参构造函数。

如果没有任何构造函数,系统会默认有一个无参构造函数。

java子类和父类构造函数_java 子类和父类构造函数关系相关推荐

  1. 总结java父类构造函数对子类构造函数的影响

    1,.父类含有无参构造函数时(显示或隐式),子类实例化时,默认调用父类的无参构造函数(因为子类继承的是父类的属性和方法,只调用父类的无参构造函数就可以继承,因此不会调用有参构造方法): 2.当父类只有 ...

  2. java 子类 父类 转换_Java子类与父类之间的类型转换

    1.向上转换 父类的引用变量指向子类变量时,子类对象向父类对象向上转换.从子类向父类的转换不需要什么限制,只需直接蒋子类实例赋值给父类变量即可,这也是Java中多态的实现机制. 2.向下转换 在父类变 ...

  3. java 调用父级方法_java子类调用父类的方法是什么

    java子类调用父类的方法:1.子类的对象调用方法时,会首先在子类中查找,如果子类中没有该方法,再到父类中查找:2.如果该方法中又调用了其他方法,那么还是按照之前的顺序,先在子类中查找,再在父类中查找 ...

  4. java子类继承父类实例_Java子类继承父类详解

    别和我说你真的懂了继承,先来看下面的代码,回答出我的问题再说 代码很简单,如下: 父类: public class T { public void run() { System.out.println ...

  5. Java继承,子类默认在构造函数中用super()调用父类构造函数

    1.子类继承父类的方法属性,并重写父类的方法,子类修饰符不能比父类方法的修饰符的范围狭窄. 2.子类必须在构造函数中使用super()来调用父类的构造函数 说明:1.父类没有写构造函数(系统默认有一个 ...

  6. java 子类重定义变量_java子类对象和成员变量的隐写方法重写

    1.子类继承的方法只能操作子类继承和隐藏的成员变量名字类新定义的方法可以操作子类继承和子类新生命的成员变量,但是无法操作子类隐藏的成员变量(需要适用super关键字操作子类隐藏的成员变量.) publ ...

  7. java 父类构造函数_Java基础系列 - 子类继承父类,调用父类的构造函数

    package com.test7; public class test7 { public static void main(String[] args) { Son son = new Son(1 ...

  8. java 调用父级方法_java子类调用父类的方法中包含子类重写的实例方法

    # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了 # 先看代码: public class Common { public static void main(String[] args) { ...

  9. java子类继承父类实际_java子类继承父类,是否生成父类对象?

    从根本上来说,对象就是一个特殊结构的内存以及可以访问这块内存的代码.所以你这个问题其实就是一个到底如何看什么是对象的. 我不了解现在jvm的具体实现,所以只能就理论上进行下分析. 由于现代的编译器都可 ...

最新文章

  1. mysql大表join小表速度很慢_mysql多表join中,为什么子查询会那么慢,怎么解决-问答-阿里云开发者社区-阿里云...
  2. 算法提高 陶陶摘苹果2(java)
  3. 有名无实别占地儿──巧用批处理快删空文件夹
  4. cocos2d-x自制工具02:AnimatePacker v1.1beta发布!!~!
  5. 27.crontab
  6. OpenSSL密码库算法笔记——第6.5章 密钥协商
  7. 设计模式--创建型模式之抽象工厂模式
  8. 财务数据分析工作总结汇报PPT模板
  9. PyTorch 激励函数
  10. RANSAC算法与原理(一)
  11. HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
  12. 好看的滚动条样式,css实现好看的滚动条样式
  13. 实体店收银系统怎么做管理和营销?
  14. vue.js 二级路由/三级路由
  15. 【每周CV论文推荐】基于GAN的图像修复值得阅读的文章
  16. Soul App打造社交元宇宙,打破次元壁
  17. Typescript类,泛型,各种类型工具
  18. 围棋初学者入门知识——必需掌握的29个围棋术语
  19. 射影几何----交比是最基本的射影不变量
  20. 【转】Tesla Autopilot

热门文章

  1. cufflinks基于dataframe数据绘制柱状图(bar plot)、堆叠柱状图(stacked bar plot)
  2. python和R对dataframe的单列数据进行统计:value_counts、table、unique、nunique、min、max、mean、sort、length、var、quantile、
  3. 人脸图像聚类实战及TSNE可视化分析
  4. 异常检测算( OneClassSVM、EllipticEnvelope、IsolationForest、LocalOutlierFactor)法比较,基于四个仿真数据集
  5. Hash+哈希+哈希函数
  6. php识别下载图片类型,php识别jpg图片exif信息中Photoshop格式 类型
  7. Comparative assessment of long-read error correction software applied to Nanopore RNA-sequencing dat
  8. 数字图像处理6:配准与掩膜
  9. 关于R和Python的安全机制
  10. HTML里面设置文本倒影,文字倒影怎么做