• 6. java 的继承


    一、继承中的构造函数

    继承关系中,父子类构造方法的访问特点:

    1. 子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造。
    2. 子类构造可以通过super关键字来调用父类重载构造。
    3. super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。
    总结:
    子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。
    public class Fu {
        public Fu() {
            System.out.println("父类无参构造");
        }
        public Fu(int num) {
            System.out.println("父类有参构造!");
        }
    }
    
    public class Zi extends Fu {
        public Zi() {
            super(); // 在调用父类无参构造方法
    //        super(20); // 在调用父类重载的构造方法
            System.out.println("子类构造方法!");
        }
        public void method() {
    //        super(); // 错误写法!只有子类构造方法,才能调用父类构造方法。
        }
    }
    二、super 关键字

    super关键字用来访问父类内容,用法有三种:
    1. 在子类的成员方法中,访问父类的成员变量。
    2. 在子类的成员方法中,访问父类的成员方法。
    3. 在子类的构造方法中,访问父类的构造方法。
    public class Zi extends Fu {
        int num = 20;
        public Zi() {
            super();
        }
        public void methodZi() {
            System.out.println(super.num); // 父类中的num
        }
        public void method() {
            super.method(); // 访问父类中的method
            System.out.println("子类方法");
        }
    }

    三、this 关键字
    this关键字用来访问本类内容。用法也有三种:

    1. 在本类的成员方法中,访问本类的成员变量。
    2. 在本类的成员方法中,访问本类的另一个成员方法。
    3. 在本类的构造方法中,访问本类的另一个构造方法。
    在第三种用法当中要注意:
    A. this(...)调用也必须是构造方法的第一个语句,唯一一个。
    B. super和this两种构造调用,不能同时使用。

  • 相关阅读:
    leetcode Ch2-Dynamic Programming I
    leetcode Ch3-DFS & Backtracking II
    关于尾递归
    leetcode BFS
    linux各文件夹的作用
    auto_ptr与shared_ptr ZZ
    漏洞分析中常用的堆调试支持
    【读书笔记】Android平台的漏洞挖掘和分析
    关于Fuzz——peach的学习
    如何验证一个地址可否使用—— MmIsAddressValid函数分析
  • 原文地址:https://www.cnblogs.com/chase-star/p/13576594.html
Copyright © 2020-2023  润新知