1 /*
2 * 子父类中的构造函数的特点。
3 * 在子类构造对象时,发现,访问子类构造函数时,父类也运行了。
4 * 为什么呢?
5 * 原因是:在子类的构造函数中第一行有一个默认的隐式语句。super()
6 * 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数。
7 *
8 * 为什么子类实例化的时候要访问父类中的构造函数呢?
9 * 那是因为子类继承了父类,获取到了父类中内容(属性),所以在使用父类内容之前要先看父类是如何对自己的内容进行初始化的。
10 *
11 * 所以子类在构造对象时,必须访问父类中的构造函数。
12 * 为了完成这个必须的动作,就在子类的构造函数中加入了super()语句。
13 *
14 * 如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确调用父类中的哪个构造函数。
15 * 同时子类构造函数中如果使用this调用了本类构造函数时,那么super就没有了,因为super和this都只能
16 * 定义第一行。所以只能有一个。
17 * 但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数。
18 *
19 * *注意:super语句必须要定义在子类构造函数的第一行。因为父类的初始化动作要先完成。
20 */
21 class Fu{
22 int num;
23 Fu(){
24 num = 10;
25 System.out.println("A fu run");
26 }
27 //Fu(int x){
28 // System.out.println("fu run");
29 //}
30 Fu(int x){
31 System.out.println("B fu run..."+x);
32 }
33 }
34 class Zi extends Fu {
35 int num;
36 Zi(){
37 //super();//调用的就是父类中的空参数的构造函数。
38 //super(4);
39 System.out.println("C zi fun"+super.num);
40 //return;
41 }
42 Zi(int x){
43 this();//可以调用本类的构造函数 上面的构造函数第一行还是super(); 至少会调用一次父类构造函数
44 //super(x);
45 System.out.println("D zi run"+x);
46 }
47 }
48 public class ExtendsDemo4 {
49 public static void main(String[] args) {
50 new Zi();
51 }
52 }
53
54 class Demo{ //创建的任何类 都属于 extends Object (无论直接间接)所以会存在super()语句
55 /* 类前加public 下面构造方法默认也变成public权限
56 Demo(){
57 super();
58 return;
59 }
60
61 */
62 }

java继承子父类构造函数-子类的实例化过程的更多相关文章

  1. Java继承--子父类中的构造函数

    子父类中的构造函数的特点: 1.在子类构造对象时,发现,访问子类构造函数时,父类构造函数也运行了.   原因是:在子类的构造函数中第一行有一个默认的隐式语句. super(); 类似于this(); ...

  2. Java继承中父类和子类构造函数的问题

    父类有无参构造函数时(显示或隐式),子类的有参和无参构造函数都是默认调用父类的无参构造函数:当父类只有有参构造函数时,子类可以有有参和无参构造函数,子类有参构造函数必须显式调用父类的有参构造函数,子类 ...

  3. java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

    Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...

  4. Java继承--子类的实例化过程

    一个对象的实例化过程: Person p = new Person(); 1,JVM会读取指定的路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接的父类的情况 ...

  5. java基础:父类与子类之间变量和方法的调用

    1)父类构造函数 java中当调用某个类的构造方法的时候,系统总会调用父类的非静态初始化块进行初始化,这个调用是隐式的,而且父类的静态初始化代码 块总是会被执行,接着调用父类的一个或者多个构造器执行初 ...

  6. JAVA继承中子父类的构造方法

    首先,构造方法本身会有一个隐式的无参构造(默认): ①不写构造方法,类中的第一行代码事实上有一个默认的无参构造(系统会隐式为你写好) public class Student { private St ...

  7. Java泛型 - 返回父类的子类

    一.栗子 public class GenericityInher { //error: Type mismatch: cannot convert from ArrayList<Child&g ...

  8. 【daily】Java泛型 - 返回父类的子类

    一.栗子 public class GenericityInher { //error: Type mismatch: cannot convert from ArrayList<Child&g ...

  9. Java静态函数、父类、子类执行顺序

    package class_test; /** * 静态函数.父类.子类执行顺序 * @author root * */ public class Test { public static void ...

随机推荐

  1. 🍃【Spring专题】「原理系列」SpringMVC的运行工作原理(补充修订)

    承接相关之前的SpringMVC的框架技术的流程分析 初始化流程(initStrategies) 执行流程 寻找相关HandlerMapping 请求到DispatcherServlet类进行执行相关 ...

  2. 【LeetCode】1423. 可获得的最大点数 Maximum Points You Can Obtain from Cards (Python)

    作者: 负雪明烛 id: fuxuemingzhu 公众号:每日算法题 本文关键词:LeetCode,力扣,算法,算法题,滑动窗口,递归,前缀和,preSum,刷题群 目录 题目描述 解题思路 递归 ...

  3. 【LeetCode】295. Find Median from Data Stream 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 大根堆+小根堆 日期 题目地址:https://le ...

  4. 【LeetCode】790. Domino and Tromino Tiling 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/domino-a ...

  5. 【LeetCode】73. Set Matrix Zeroes 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 原地操作 新建数组 队列 日期 题目地址:https ...

  6. 【LeetCode】74. Search a 2D Matrix 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 左下或者右上开始查找 顺序查找 库函数 日期 题目地 ...

  7. 1266 - Points in Rectangle

    1266 - Points in Rectangle    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 3 ...

  8. UVA11754 - Code Feat

    Hooray!  Agent Bauer has shot the terrorists, blown upthe bad guy base, saved the hostages, exposed ...

  9. MySQL中的where和having

    group by 在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集.group by 子 ...

  10. 【环境搭建】安装pyQt5 在pycharm报This application failed to start because no Qt platform plugin could be initialized的问题

    报错:This application failed to start because no Qt platform plugin could be initialized 解决办法: http:// ...