有继承关系的前提下,子类一定会调用父类的构造方法。因为构造方法是用来进行初始化的,子类要初始化,必须先使用父类的构造方法。

以下情形参考:

1.当子类不重写构造方法,子类默认拥有一个无参构造方法,但是,注意,这个构造方法第一行默认执行super();

class Father{f(){System.out.println("子类会调用Father的构造方法");}
}class Son extends Father{//子类这里,相当于系统会默认写上s() {super()};
}class Demo{public static void main(String[] args) {Son s = new Son(); }
}

运行结果打印出     子类会调用Father的构造方法

2.当子类重写了自己的构造方法,构造方法默认第一行仍然是 super();

注意:1和2中父类一定要有一个无参的构造方法, 不然super()调啥东西?

3.子类重写了自己的构造方法,但是呢,子类希望以别的方式进行初试化。所以父类一般不只一个构造方法,那太单调了。所以父类工具初始化的需求不同,写了好几个构造方法,那子类怎么调用父类不同的构造方法----------- 重载-----------根据super()传入的签名来区分子类要的是哪个构造方法。

class Father{String name;int age;//父类的第一个构造方法,无参构造方法Father(){System.out.println("子类会调用Father的构造方法");}//父类的第二个构造方法Father(String name){System.out.println("子类会调用Father的第二个构造方法");}//父类的第三个构造方法,需要知道父类中的name  和age信息Father(String name, int age){System.out.println("子类会调用Father的第三个构造方法");}
}class Son extends Father{String name;int age;Son(String name, int age){super(name, age);}
}class Demo{public static void main(String[] args) {Son s = new Son("timo",8);   }
}

总之:

子类的构造方法一定会调用父类的构造方法,只是写成了super

既然一定会,那你父类得有吧

父类有了构造方法,那也得符合子类的需求吧

所以,根据子类super()中传入的参数列表来匹配, 也就是重载。

java中子类构造方法和父类构造方法相关推荐

  1. java中子类怎样调用父类的属性_java的继承、重载(overload)、覆盖(override)的总结...

    java为了解决相似属性和行为能共用相同的代码,也是为了便于标准模块化.减少相同代码要多次重复编写的问题,提供了继承.重载和覆盖的功能.继承是针对类,重载和覆盖是针对方法的. 一.继承:为了便于理解. ...

  2. java中子类会继承父类的构造方法吗

    不会 但是子类造对象时,访问子类构造函数时,也会访问父类的构造函数. 原因是:在子类的构造函数中第一行有一个默认的隐式语句,super(),这里的super():调用的就是父类中的空参数的构造函数, ...

  3. 在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?

    前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先 ...

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

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

  5. java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...

    为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...

  6. 转:Java中子类是否可以继承父类的static变量和方法而呈现多态特性

    原文地址:Java中子类是否可以继承父类的static变量和方法而呈现多态特性 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明 ...

  7. Java 中子类是否只继承父类的非私有变量和方法?

    今天在 CSDN 论坛中见到有人问在 Java 中子类是否只继承父类的非私有变量和方法(原贴在此).大部分跟贴都认为这句话是正确的,但是对于这个问题背后的本质理解却是错误的. 首先我们明确一下&quo ...

  8. java中super用来定义父类,定义子类必须使用的关键字是 在java中子类若要继承父类,需要使用的关键字是什么...

    java定义接口时需要使用的关键字是 定义接口复使用的关键字是"interface",中文意思"接口.解释:通常接口都是制为了定义百某些规范,而在接口中只定义了方法,而没 ...

  9. java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...

    [情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...

最新文章

  1. 知识图谱学习笔记(1)
  2. xp装linux一键安装教程图解,XP下硬盘安装CentOS 6.0图解教程
  3. SpringCloud 在每次使用缓存的请求前后对HystrixRequestContext进行初始化和关闭,否则会出现异常
  4. 多路复用IO模型中的select和epoll
  5. java枚举使用详解
  6. gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题
  7. mongodb转实体对像_营销案例丨实体店走出门面冷清的方法:打造体验式门店
  8. python搭建博客项目思路_Django项目——Blog简易开发入门
  9. MSMQ消息队列线程使用
  10. L1-051 打折 (5 分)—团体程序设计天梯赛
  11. 前端安全: 如何防止 XSS 攻击?
  12. B站郝斌C语言指针笔记
  13. 微型计算机常见的输入与输出设备,微型计算机的输入输出设备.doc
  14. 华为设备如何将接口配置为中继模式_华为无线路由器怎么设置中继
  15. 狂神ajax,Ajax---狂神说
  16. 为什么书上说是 TCP 四次挥手,但是实际会出现 TCP 三次挥手?
  17. double cbrt(double x)
  18. uniapp实现登录功能步骤
  19. 深圳超美海边烧烤场 深圳户外烧烤攻略
  20. Dev C++调试程序方法超详解,系统地学一下如何用 Dev C++ 调试程序

热门文章

  1. mysql8.0导入备份_Mysql 5.* 数据库备份及导入
  2. HTML单个的下拉时间列表
  3. oracle 每天 增量备份,Oracle的差异增量备份和累积增量备份
  4. Android Studio小作业:科学计算器
  5. PHP+防止SQL注入的网上二手交易平台 毕业设计-附源码241552
  6. 做事情,做学问,还有生活。
  7. MatebookE2022款i7集显 华为智能磁吸键盘(DRC-W76)原装出厂Win11系统恢复原厂OEM系统
  8. 2021年安全员-A证(山东省)考试及安全员-A证(山东省)考试技巧
  9. 虚拟机安装VMware Tool
  10. 只要是倒霉,起卦就能看出来