1.子类无构造函数,超类无构造函数,创建的无参数的对象:

编译通过。

  1. class A
  2. {
  3.  
  4. }
  5.  
  6. class B extends A
  7. {
  8.  
  9. }
  10. public class Testeeer
  11. {
  12. public static void main(String [] args)
  13. {
  14. B b_01=new B();
  15. }
  16. }

2.子类有无参数构造函数,超类无构造函数,创建的无参数的对象:

运行结果:

调用了B的无参构造函数

  1. class A
  2. {
  3.  
  4. }
  5. class B extends A
  6. {
  7. public B()
  8. {
  9. System.out.println("调用了B的无参构造函数");
  10. }
  11. }
  12.  
  13. public class Testeeer
  14. {
  15. public static void main(String [] args)
  16. {
  17. B b_01=new B();
  18.  
  19. }
  20. }

3.子类无构造函数,超类有无参数构造函数,创建的无参数的对象:

运行结果:

调用了A的无参构造函数

  1. class A
  2. {
  3. public A()
  4. {
  5. System.out.println("调用了A的无参构造函数");
  6. }
  7. }
  8. class B extends A
  9. {
  10.  
  11. }
  12.  
  13. public class Testeeer
  14. {
  15. public static void main(String [] args)
  16. {
  17. B b_01=new B();
  18.  
  19. }
  20. }

4.子类有无参数构造函数,超类有无参数构造函数,创建的无参数的对象:

运行结果:

调用了A的无参构造函数

调用了B的无参构造函数

  1. class A
  2. {
  3. public A()
  4. {
  5. System.out.println("调用了A的无参构造函数");
  6. }
  7. }
  8. class B extends A
  9. {
  10. public B()
  11. {
  12. System.out.println("调用了B的无参构造函数");
  13. }
  14. }
  15.  
  16. public class Testeeer
  17. {
  18. public static void main(String [] args)
  19. {
  20. B b_01=new B();
  21.  
  22. }
  23. }

5.子类无构造函数,超类无构造函数,创建的有参数的对象:

编译不成功:

  1. class A
  2. {
  3.  
  4. }
  5.  
  6. class B extends A
  7. {
  8.  
  9. }
  10.  
  11. public class Testeeer
  12. {
  13. public static void main(String [] args)
  14. {
  15.  
  16. B b_02=new B("你好");
  17. }
  18. }

6.子类有无参数构造函数,超类无构造函数,创建的有参数的对象:

编译不成功:

  1. class A
  2. {
  3.  
  4. }
  5.  
  6. class B extends A
  7. {
  8. public B()
  9. {
  10. System.out.println("调用了B的无参构造函数");
  11. }
  12. }
  13.  
  14. public class Testeeer
  15. {
  16. public static void main(String [] args)
  17. {
  18.  
  19. B b_02=new B("你好");
  20. }
  21. }

7.子类无构造函数,超类有无参数构造函数,创建的有参数的对象:

编译不成功:

  1. class A
  2. {
  3. public A()
  4. {
  5. System.out.println("调用了A的无参构造函数");
  6. }
  7. }
  8.  
  9. class B extends A
  10. {
  11.  
  12. }
  13.  
  14. public class Testeeer
  15. {
  16. public static void main(String [] args)
  17. {
  18.  
  19. B b_02=new B("你好");
  20. }
  21. }

8.子类有无参数构造函数,超类有无参数构造函数,创建的有参数的对象:

编译不成功:

  1. class A
  2. {
  3. public A()
  4. {
  5. System.out.println("调用了A的无参构造函数");
  6. }
  7. }
  8.  
  9. class B extends A
  10. {
  11. public B()
  12. {
  13. System.out.println("调用了B的无参构造函数");
  14. }
  15. }
  16.  
  17. public class Testeeer
  18. {
  19. public static void main(String [] args)
  20. {
  21.  
  22. B b_02=new B("你好");
  23. }
  24. }

9.子类有有参数构造函数,超类无构造函数,创建的有参数的对象:

编译成功;

运行结果:

  1. class A
  2. {
  3.  
  4. }
  5. class B extends A
  6. {
  7.  
  8. public B(String mess)
  9. {
  10. System.out.println("调用了B的有参构造函数\n"+
  11. "参数内容为:"+mess);
  12. }
  13.  
  14. }
  15.  
  16. public class Testeeer
  17. {
  18. public static void main(String [] args)
  19. {
  20. B b_02=new B("你好");
  21. }
  22. }

10.子类有有参数构造函数,超类有有参数构造函数,创建的有参数的对象:

编译失败:

  1. class A
  2. {
  3. public A(String mess)
  4. {
  5. System.out.println("调用了A的有参构造函数\n"+
  6. "参数内容为:"+mess);
  7. }
  8. }
  9. class B extends A
  10. {
  11.  
  12. public B(String mess)
  13. {
  14. System.out.println("调用了B的有参构造函数\n"+
  15. "参数内容为:"+mess);
  16. }
  17.  
  18. }
  19.  
  20. public class Testeeer
  21. {
  22. public static void main(String [] args)
  23. {
  24. B b_02=new B("你好");
  25. }
  26. }

11.子类有有参数构造函数(首行定义super),超类有有参数构造函数,创建的有参数的对象:

编译成功;

运行结果:

  1. class A
  2. {
  3. public A(String mess)
  4. {
  5. System.out.println("调用了A的有参构造函数\n"+
  6. "参数内容为:"+mess);
  7. }
  8. }
  9. class B extends A
  10. {
  11.  
  12. public B(String mess)
  13. {
  14. super(mess);
  15. System.out.println("调用了B的有参构造函数\n"+
  16. "参数内容为:"+mess);
  17. }
  18.  
  19. }
  20.  
  21. public class Testeeer
  22. {
  23. public static void main(String [] args)
  24. {
  25. B b_02=new B("你好");
  26. }
  27. }

12.子类有有参数构造函数,超类有有参数构造函数和无参数的构造函数,创建的有参数的对象:

编译成功;

运行结果:

  1. class A
  2. {
  3. public A(String mess)
  4. {
  5. System.out.println("调用了A的有参构造函数\n"+
  6. "参数内容为:"+mess);
  7. }
  8. public A()
  9. {
  10. System.out.println("调用了A的无参构造函数");
  11. }
  12. }
  13. class B extends A
  14. {
  15.  
  16. public B(String mess)
  17. {
  18.  
  19. System.out.println("调用了B的有参构造函数\n"+
  20. "参数内容为:"+mess);
  21. }
  22.  
  23. }
  24.  
  25. public class Testeeer
  26. {
  27. public static void main(String [] args)
  28. {
  29. B b_02=new B("你好");
  30. }
  31. }

13.子类有有参数构造函数,超类默认无构造函数,创建的有参数的对象:

编译成功;

运行结果:

  1. class A
  2. {
  3.  
  4. }
  5. class B extends A
  6. {
  7.  
  8. public B(String mess)
  9. {
  10.  
  11. System.out.println("调用了B的有参构造函数\n"+
  12. "参数内容为:"+mess);
  13. }
  14.  
  15. }
  16.  
  17. public class Testeeer
  18. {
  19. public static void main(String [] args)
  20. {
  21. B b_02=new B("你好");
  22. }
  23. }

1.一旦你在超类或者子类中定义了有参数的构造函数,那么子类和超类中系统默认提供的无参构造函数将不复存在。

2.在子类的构造函数构造前,一定要完成超类的构造函数构造的过程。(那么依据这样的惯性行为,主程序入口处创建的对象的两种类型(有参数或者无参数)将会直接决定子类所调用的构造函数类型(与对象的类型相同)(有参数或者无参数),但是在完成子类构造函数前,先要去完成超类的构造函数。)

2.1如果是无参数的对象创建:

2.1.1超类:默认                                子类:无参构造函数                                    运行:超类默认,子类无参构造

2.1.2超类:无参构造函数                     子类:默认                                               运行:超类无参构造函数,子类默认

2.1.3超类:默认                                子类:默认                                               运行:超类默认,子类默认

2.1.4超类:无参构造函数                     子类:无参构造函数                                    运行:超类无参构造函数,子类无参构造函数

2.2如果是有参数的对象创建:

2.2.1超类:有参构造数                         子类:有参构造函数{定义中首行super(形参)}        运行:超类有参构造数,子类有参构造函数

2.2.2超类:默认                                 子类:有参构造函数                                             运行:超类默认,子类有参构造函数

2.2.3超类:无参构造数                         子类:有参构造函数                                             运行:超类无参构造数,子类有参构造函数

2.2.4超类:有参构造和无参构造              子类:有参构造函数                                             运行:无参构造,子类有参构造函数

2.2.5超类:有参构造和无参构造              子类:有参构造函数{定义中首行super(形参)}         运行:超类有参构造,子类有参构造函数

JAVA构造函数在超类与子类定义鲁波总结的更多相关文章

  1. JAVA构造函数在超类和子类调用注意事项

    1.构造函数:        当子类继承一个父类时,构造子类时需要调用父类的构造函数,存在三种情况        (1),父类无构造函数或者一个无参数构造函数,子类若无构造函数或者有无参数构造函数,子 ...

  2. java构造函数是否可继承,以及子类构造函数可否不使用super调用超类构造函数

    问题一:java的构造函数能否被继承? 笔者初学java看的一本书说:“java的子类自然的继承其超类的“非private成员”. 通常java的构造函数被设置为public的(若你不写构造函数,ja ...

  3. Java核心技术第五章——1.类、超类、子类(2)

    继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...

  4. Java核心技术第五章——1.类、超类、子类(1)

    1.定义子类: 关键字extends表明正在构造的新类派生与一个已存在的类.已存在的类称为超类.基类或父类:新类称为子类.派生类或孩子类.超类和子类是Java程序员最常用的两个术语(emmm~~我觉得 ...

  5. Java:【面向对象:类的定义,静态变量,成员变量,构造函数,封装与私有,this】

    本文内容: 什么是面对对象 类的定义与对象实例化 成员变量 成员变量的有效范围 成员变量的赋值 静态变量.方法与实例变量.方法 构造函数 封装与私有 this关键字 注:函数和方法是一样东西.[由于我 ...

  6. Core Java (十一) Java 继承,类,超类和子类

    Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读 ...

  7. Java 构造函数(抽象类中的构造函数) 和 加载

    博客分类: 面向对象设计的原则 与 概念   1. Java 的构造函数 与初始化块: a. 抽象类的构造函数 若果在父类中(也就是抽象类)中显示的写了有参数的构造函数,在子类是就必须写一个构造函数来 ...

  8. JavaScript 超类与子类 继承

    //超类和子类 继承的实现 function R(w, h) { var date = new Date(); this.width = w; this.height = h; this.create ...

  9. JS 超类和子类

    此篇由别的大神的博客与<javascript高级程序设计>一书整理而来 原博客地址:https://hyj1254.iteye.com/blog/628555 看到javascript高级 ...

随机推荐

  1. 迭代器、foreach循环、泛型集合

    集合的迭代 语法:Iterator<Object> it=集合.iterator(); while(it.hasNext()){ Object obj=it.next(); } is.ha ...

  2. 监控摄像机常识:宽动态 (WDR)介绍和理解

    安装和使用监控摄像机经常会遇到强光问题. 因为我们不可能灵活选择摄像机的安装位置, 解决或者处理强光是一个无法避免的问题. 不管是由反光材质或者灯源造成此反光, 解决问题的方案来自于摄像机支持的一个特 ...

  3. 开源一款ftp软件——filezilla

    filezilla是一款高性能ftp/sftp文件工具,关于它的具体的介绍可参见其官网:https://www.filezilla.cn/.其原作者是Tim Kosse (tim.kosse@file ...

  4. Linux下升级安装Python-3.6.2版本

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.6.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...

  5. Hello Pythoner!

    首先,欢迎你来到pyer的博客,希望你能有所收获! 然后,pyer之前学C#(原博客地址:初行-博客园),后来转的Python,目前从事服务端研发工作. 最后,相逢便是缘,如果看过pyer的博客后有什 ...

  6. 使用css固定table第一列

    .table{width:100%;overflow-x: scroll;background-color:#7c95b5;} .fixedTable{width:160%;text-align: c ...

  7. HihoCoder 1033交错和(数位DP第三题)

    (写挂了,有空再补) 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an - 1,定义 ...

  8. Jsp邮件找回密码全攻略

    [来源网络  http://www.2cto.com/kf/201502/376374.html] 一般大型网站我们登录的时候,密码忘了都有个功能可以找回密码. 细数下大致的方法: 1.直接把密码发送 ...

  9. Java--数组转成list,list转数组

    数组转成list: 方法一: String[] userid = {"aa","bb","cc"}; List<String> ...

  10. 《DSP using MATLAB》示例Example 6.16、6.17