java中子类构造方法和父类构造方法
有继承关系的前提下,子类一定会调用父类的构造方法。因为构造方法是用来进行初始化的,子类要初始化,必须先使用父类的构造方法。
以下情形参考:
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中子类构造方法和父类构造方法相关推荐
- java中子类怎样调用父类的属性_java的继承、重载(overload)、覆盖(override)的总结...
java为了解决相似属性和行为能共用相同的代码,也是为了便于标准模块化.减少相同代码要多次重复编写的问题,提供了继承.重载和覆盖的功能.继承是针对类,重载和覆盖是针对方法的. 一.继承:为了便于理解. ...
- java中子类会继承父类的构造方法吗
不会 但是子类造对象时,访问子类构造函数时,也会访问父类的构造函数. 原因是:在子类的构造函数中第一行有一个默认的隐式语句,super(),这里的super():调用的就是父类中的空参数的构造函数, ...
- 在java继承机制中 父类中的私有_Java中子类能继承父类的私有属性吗?
前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先 ...
- 关于JAVA中子类和父类的构造方法
本篇文章总结了一些关于Java构造方法的常见问题. 为什么创建了一个子类对象会调用其父类的构造方法 如下代码示例: package simplejava;class Super {String s;p ...
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- 转:Java中子类是否可以继承父类的static变量和方法而呈现多态特性
原文地址:Java中子类是否可以继承父类的static变量和方法而呈现多态特性 静态方法 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法,关于static方法,声明 ...
- Java 中子类是否只继承父类的非私有变量和方法?
今天在 CSDN 论坛中见到有人问在 Java 中子类是否只继承父类的非私有变量和方法(原贴在此).大部分跟贴都认为这句话是正确的,但是对于这个问题背后的本质理解却是错误的. 首先我们明确一下&quo ...
- java中super用来定义父类,定义子类必须使用的关键字是 在java中子类若要继承父类,需要使用的关键字是什么...
java定义接口时需要使用的关键字是 定义接口复使用的关键字是"interface",中文意思"接口.解释:通常接口都是制为了定义百某些规范,而在接口中只定义了方法,而没 ...
- java中子类可否抛出两个父类抛出的异常的子类_父类的多个构造方法各自抛出不同的异常,子类的构造方法应该抛出哪个/些异常?...
[情况描述]如下代码,在父类中定义了两个构造方法,各自throws不同的异常.当定义子类时,IDE会提示需要显示定义构造方法来抛出父类构造方法的异常.很自然地认为应该抛出父类所有构造方法的异常,然而只 ...
最新文章
- 知识图谱学习笔记(1)
- xp装linux一键安装教程图解,XP下硬盘安装CentOS 6.0图解教程
- SpringCloud 在每次使用缓存的请求前后对HystrixRequestContext进行初始化和关闭,否则会出现异常
- 多路复用IO模型中的select和epoll
- java枚举使用详解
- gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题
- mongodb转实体对像_营销案例丨实体店走出门面冷清的方法:打造体验式门店
- python搭建博客项目思路_Django项目——Blog简易开发入门
- MSMQ消息队列线程使用
- L1-051 打折 (5 分)—团体程序设计天梯赛
- 前端安全: 如何防止 XSS 攻击?
- B站郝斌C语言指针笔记
- 微型计算机常见的输入与输出设备,微型计算机的输入输出设备.doc
- 华为设备如何将接口配置为中继模式_华为无线路由器怎么设置中继
- 狂神ajax,Ajax---狂神说
- 为什么书上说是 TCP 四次挥手,但是实际会出现 TCP 三次挥手?
- double cbrt(double x)
- uniapp实现登录功能步骤
- 深圳超美海边烧烤场 深圳户外烧烤攻略
- Dev C++调试程序方法超详解,系统地学一下如何用 Dev C++ 调试程序
热门文章
- mysql8.0导入备份_Mysql 5.* 数据库备份及导入
- HTML单个的下拉时间列表
- oracle 每天 增量备份,Oracle的差异增量备份和累积增量备份
- Android Studio小作业:科学计算器
- PHP+防止SQL注入的网上二手交易平台 毕业设计-附源码241552
- 做事情,做学问,还有生活。
- MatebookE2022款i7集显 华为智能磁吸键盘(DRC-W76)原装出厂Win11系统恢复原厂OEM系统
- 2021年安全员-A证(山东省)考试及安全员-A证(山东省)考试技巧
- 虚拟机安装VMware Tool
- 只要是倒霉,起卦就能看出来