java 子类和父类构造函数关系
来源:互联网 发布:批量提取word表格数据 编辑:程序博客网 时间:2024/05/29 18:53
在创建子类的对象时,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 12343.如果子类构造函数是这样写的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:创建有参构造函数后,系统就不再有默认无参构造函数。如果没有任何构造函数,系统会默认有一个无参构造函数。
0 0
- java 子类和父类构造函数关系
- java 子类和父类构造函数关系
- 深入理解构造函数和析构函数以及父类和子类的部分关系
- Java中子类和父类的构造函数?
- java-父类和子类的构造函数
- 子类构造和父类构造的关系
- 子类和父类的构造函数
- 继承(子类与父类构造函数的关系)
- C++子类父类构造函数的关系
- java 子类构造函数与父类构造函数
- Java的子类构造器与其父类关系
- 浅谈java的子类构造器与其父类关系
- java 父类和子类构造器
- 继承中子类和父类构造方法的关系
- JAVA子类和父类关系总结
- 子类和父类 构造函数和析构函数
- 子类与父类构造器关系
- Java子类和父类的构造函数继承的问题分析
- VIM下的跳转练习
- eclipse pydev django 接收 post 发来的 json 请求
- CSS3 多行文本溢出省略
- jQuery 入门
- 图像处理基础算法
- java 子类和父类构造函数关系
- win10 bash linux安装ubuntu & lamp 卸载ubuntu
- 从URL到与服务器断开连接到底发生了什么
- jquery 动态给table赋值
- 一种灵活可靠的工作方式:组件化设计与开发
- Zookeeper3.4.6与Kafka0.8.1.1集群安装和配置详细步骤
- 常用的$.ajax()方法
- hdu 6006 Engineer Assignment(状压dp)
- 使用事务保证和数据完整性