在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?

   答案如下:

    当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出来,那么肯定要调用其构造方法,所以:

     第一个规则:子类的构造过程中,必须调用其父类的构造方法。一个类,如果我们不写构造方法,那么编译器会帮我们加上一个默认的构造方法,所谓默认的构造方法,就是没有参数的构造方法,但是如果你自己写了构造方法,那么编译器就不会给你添加了,所以有时候当你new一个子类对象的时候,肯定调用了子类的构造方法,但是在子类构造方法中我们并没有显示的调用基类的构造方法,就是没写,如:super(); 并没有这样写,但是这样就会调用父类没有参数的构造方法,如果父类中没有没有参数的构造方法就会出错。

     第二个规则:如果子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构造方法注意:如果子类的构造方法中既没有显示的调用基类构造方法,而基类中又没有默认无参的构造方法,则编译出错,所以,通常我们需要显示的:super(参数列表),来调用父类有参数的构造函数。

  

 1 //当你没有使用父类默认的构造方法时,此时在子类的构造方法中就需要显示的调用父类定义的构造方法。2 class Animal{3   private String name;4   5   //如果你定义一个新的构造方法6   public Animal(String name) {7     this.name = name;8   }9 }
10
11 public Dog extends Animal{
12
13   //这时你就要显示的调用父类的构造方法,因为子类默认调用的是父类的
14   //无参构造方法Animal()
15   public Dog(){
16     super("小狗");  //显示调用父类的有参构造方法
17
18     ....  //子类的构造方法处理
19   }
20 }
21
22 //当然,如果你在父类里面把无参的构造方法,显示的写出来了,比如:
23 class Animal{
24   private String name;
25
26   //无参的构造方法
27   public Animal() {
28     .....  //处理
29   }
30
31   /*
32   如果你定义一个新的构造方法,那么在子类的构造方法中,就可以不用显示的调用父类的构造方法,因为子类有个无参的构造方法,
33   子类在构造方法中会自动调用父类已经定义的无参构造方法。
34   */
35   public Animal(String name) {
36     this.name = name;
37   }
38 }

总结:不过一般的,在父类中使用了构造方法的重载,在子类中就可以根据需要,调用相应的父类构造方法。

Java里子类调用父类构造方法问题相关推荐

  1. JAVA子类调用父类构造方法

    子类调用父类的构造方法 父类的构造方法不能被子类继承.以下语句中MyException类继承了java.lang.Exception类. public class MyException extend ...

  2. 子类调用父类构造方法 java_JAVA子类调用父类构造方法

    父类的构造方法不能被子类继承.以下语句中MyException类继承了java.lang.Exception类. public class MyException extends Exception{ ...

  3. insert时调用本身字段_java中子类调用父类构造方法注意事项

    protected继承 继承有个特点,就是子类无法访问父类的private字段或者private方法.例如,Student类就无法访问Person类的name和age字段: class Person ...

  4. 关于Java中子类调用父类方法

    当一个类继承于另一个类,子类中没有父类的方法时.用子类的对象调用方法时,会首先在子类中查找,如果子类中没有改方法,再到父类中查找. 当一个方法只在父类中定义时,调用该方法时会使用父类中的属性.  如果 ...

  5. 第五章 类的继承和super的使用调用父类构造方法

    类的继承 mammals dogs cats humans lions tigers leopards 人是哺乳动物,因为人都具有哺乳动物的所有特征,但哺乳动物却不一定是人.哺乳动物类和人类之间就存在 ...

  6. Java子类调用父类的构造方法

    一.自动调用父类无参构造方法 //这是父类 public class SuperClass {//父类无参构造方法public SuperClass(){System.out.println(&quo ...

  7. 关于JAVA中子类和父类的构造方法

    本篇文章总结了一些关于Java构造方法的常见问题. 为什么创建了一个子类对象会调用其父类的构造方法 如下代码示例: package simplejava;class Super {String s;p ...

  8. java super父类方法_java super关键字,super调用父类构造方法详解

    因为子类不可以继承父类的构造方法,所以,想要调用父类的构造方法的话,那么就可以使用得到super关键字下面的话就来对这个方面做一下详细的讲解. super关键字能够用来访问父类的构造方法.普通方法和属 ...

  9. java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...

    java子类调用父类的方法中包含子类重写的实例方法 # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了 # 先看代码: public class Common { public static ...

最新文章

  1. 巧用组策略关闭危险端口
  2. web开发中目录路径问题的解决
  3. Springboot的slf4j的配置文件模板
  4. is_valid校验机制
  5. 广西中专机器人应用与维护_我校2018级工业机器人应用与维护专业跟岗实习
  6. pgsql动态创建table
  7. build文件_把编译时间加入到目标文件
  8. leetcode-187-重复的DNA序列
  9. 容器编排技术 -- Kubernetes kubectl get 命令详解
  10. mysql实现了四种通信协议_Mysql通信协议-阿里云开发者社区
  11. 看看百度百科怎样解释CSS的
  12. C11的对齐特性是在新的头文件中stdalign.h声明的
  13. 修改后的LOGO发布(确定稿)
  14. 计算机实验云平台,浅析基于云平台的计算机实验教学中心建设
  15. 计算机网络通信设备的运行温度,什么是机房温度、湿度标准?
  16. 如何在ppt中生成柱状图_在PPT中怎么制作图表?PPT制作图表的方法
  17. 吸引子传播(Affinity Propagation)算法
  18. 计算机的键盘应用,电脑键盘应用小知识
  19. python库缺少pkg_resource_Python pkg_resources.ResourceManager方法代码示例
  20. LDA NCA: 降维与度量学习

热门文章

  1. 《学术小白的实战之路》01 LDA-Word2Vec-TF-IDF组合特征的机器学习情感分类模型研究
  2. PHP fwrite写入文件,记事本打开乱码
  3. 海尔系列报道之一:海尔“小微”怎么玩
  4. 2023届互联网校招信息⌈提前批⌋⌈秋招⌋ ⌈春招⌋ 第一弹
  5. 洗牌程序c语言原理,C语言经典算法 - 洗牌算法
  6. SKYLIN TerraExplorer Pro 后台控制导航控件的显示隐藏(指北针、放大、缩小等)
  7. 关于 ARAS PLM (一) 部署
  8. 探索原味 BFF 模式
  9. 对抗重力—初探声悬浮技术
  10. Java基础系列34-file类别