• java特性之二----继承


    1.继承的概述

     =========================================================================================================================

    2.继承的格式

     =======================================================================================================================

    3.继承中成员变量的访问特点

    Fu.java

    package cn.itcast.day09.demo02;

    public class Fu {

    int numFu = 10;

    int num = 100;

    public void methodFu() {
    // 使用的是本类当中的,不会向下找子类的
    System.out.println(num);
    }

    }

    ======================================================================

    Zi.java

    package cn.itcast.day09.demo02;

    public class Zi extends Fu {

    int numZi = 20;

    int num = 200;

    public void methodZi() {
    // 因为本类当中有num,所以这里用的是本类的num
    System.out.println(num);
    }

    }

    =============================================================================

    Demo01ExtendsField.java

    package cn.itcast.day09.demo02;

    /*
    在父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:

    直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找。


    间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找。
    */
    public class Demo01ExtendsField {

    public static void main(String[] args) {
    Fu fu = new Fu(); // 创建父类对象
    System.out.println(fu.numFu); // 只能使用父类的东西,没有任何子类内容
    System.out.println("===========");

    Zi zi = new Zi();

    System.out.println(zi.numFu); // 10
    System.out.println(zi.numZi); // 20
    System.out.println("===========");

    // 等号左边是谁,就优先用谁
    System.out.println(zi.num); // 优先子类,200
    // System.out.println(zi.abc); // 到处都没有,编译报错!
    System.out.println("===========");

    // 这个方法是子类的,优先用子类的,没有再向上找
    zi.methodZi(); // 200
    // 这个方法是在父类当中定义的,
    zi.methodFu(); // 100
    }

    }

    ====================================================================================

    4.区分子类方法中重名的三种

    父类中成员变量int num=10;

    子类中成员变量int num=20;

    子类方法中局部变量 int  num=30;

     ========================================================================================

    5.继承中成员方法的访问特点.

     ================================================================================================================

    6.继承中方法的覆盖重写_概念

     =====================================================================================================================

    7.继承中方法的覆盖重写_注意事项

    注意:@Override关键字一定要写上,可以有效防止方法正确覆盖重写

     ========================================================================================================

     8.继承中方法的覆盖重写_应用

     ==========================================================================================================================

    9.继承中构造方法的访问特点

    Demo01Constructor.java

    package cn.itcast.day09.demo07;

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

    1. 子类构造方法当中有一个默认隐含的“super()”调用,所以一定是先调用的父类构造,后执行的子类构造
    2. 子类构造可以通过super关键字来调用父类重载构造。
    3. super的父类构造调用,必须是子类构造方法的第一个语句。不能一个子类构造调用多次super构造。
    总结:
    子类必须调用父类构造方法,不写则赠送super();写了则用写的指定的super调用,super只能有一个,还必须是第一个。
    */
    public class Demo01Constructor {

    public static void main(String[] args) {
    Zi zi = new Zi();
    }

    }

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Fu.java

    package cn.itcast.day09.demo07;

    public class Fu {

    public Fu() {
    System.out.println("父类无参构造");
    }

    public Fu(int num) {
    System.out.println("父类有参构造!");
    }

    }

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Zi.java

    package cn.itcast.day09.demo07;

    public class Zi extends Fu {

    public Zi() {
    super(); // 在调用父类无参构造方法
    // super(20); // 在调用父类重载的构造方法
    System.out.println("子类构造方法!");
    }

    public void method() {
    // super(); // 错误写法!只有子类构造方法,才能调用父类构造方法
    }

    }

    ================================================================================================================

    10.super关键字的三种用法

     ========================================================================================================================

    11.this关键字的三种用法

    Fu.java

    package cn.itcast.day09.demo09;

    public class Fu {

    int num = 30;

    }

    -------------------------------------------------------------------------------------------------------------------------------

    Zi.java

    package cn.itcast.day09.demo09;

    /*
    super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种:

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

    int num = 20;

    public Zi() {
    // super(); // 这一行不再赠送
    this(123); // 本类的无参构造,调用本类的有参构造
    // this(1, 2); // 错误写法!
    }

    public Zi(int n) {
    this(1, 2);
    }

    public Zi(int n, int m) {
    }

    public void showNum() {
    int num = 10;
    System.out.println(num); // 局部变量
    System.out.println(this.num); // 本类中的成员变量
    System.out.println(super.num); // 父类中的成员变量
    }

    public void methodA() {
    System.out.println("AAA");
    }

    public void methodB() {
    this.methodA();//也可以直接写methodA()
    System.out.println("BBB");
    }

    }

    ============================================================================================================

    12.super与this关键字图解

     ===================================================================================================================================

    13.Java继承的三个特点

     66666666666666666666666

  • 相关阅读:
    bugku crypto 告诉你一个秘密(ISCCCTF)
    递归法求组合数C(m,n)
    bugku 逆向 take the maze
    P1118 [USACO06FEB]数字三角形`Backward Digit Su`… (dfs)
    递归 dfs 记忆化搜索 动态规划
    c++ 取整:四舍五入 向上取整 向下取整
    2019 计蒜之道 初赛 第一场 商汤的AI伴游小精灵
    华南理工大学“三七互娱杯” D HRY and array
    华南理工大学 “三七互娱杯” G HRY and tree
    2019年湘潭大学程序设计竞赛(重现赛)
  • 原文地址:https://www.cnblogs.com/curedfisher/p/12377419.html
Copyright © 2020-2023  润新知