• Java学习


    Java 继承

    继承(inheritance)是面向对象编程的三要素(封装、继承、多态)中最重要的一个。

    Java中同样拥有继承的概念。子类继承父类,父类被子类继承。

    Java不同于C++,类的继承只能是单继承。一个子类只能有一个直接父类。

    继承的优势

    子类继承父类的状态和行为,有以下两个优势:

    • 可以修改父类的状态或重载父类的行为
    • 可以添加新的状态和行为

    使用继承

    使用关键字extends来实现继承

    class Student extends Person{
    	// ...
    }
    

    如果没有extends,则该类默认为java.lang.Object的子类

    所有的类都是通过直接会间接继承自java.lang.Object得到的

    继承包括字段的继承和方法的继承。

    子类既可以使用父类的成员、方法,也可以重新定义一个类型完全相同的成员、方法。这种行为称为修改(覆盖) (@Override)

    此外,继承同样可以进行方法的重载。

    this 和 super

    • this为本对象实例的引用,可以在对象的成员方法中调用this来访问当前对象的字段或方法。
    class Person{
        String name;
        Person(){};
        Person(String name){
            this.name = name;
        }
        void sayHello(){
            System.out.println("Person " + name + " Say Hello to you.");
        }
    }
    
    • super也是本对象实例的引用,可以用super来调用父类的字段或方法。super主要用来解决这些问题
      1. 子类方法已将父类方法覆盖,但需要在子类中访问父类的方法
    class Student extends Person{
        String id;
        Student(){};
        void sayHello(){
            System.out.println("Student " + name + "Say Hello to you");
        }
        void testSuper(){
            super.sayHello();
            this.sayHello();
        } 
    }
    

    ​ 2. 子类的构造方法一部分需要用到父类的构造方法

    class Student extends Person{
        String id;
        Student(){};
        Student(String name,String id){
            super(name); // 调用父类的构造方法
            this.id = id;
        }
    }
    
    ---- suffer now and live the rest of your life as a champion ----
  • 相关阅读:
    常见业务指标
    1006 换个格式输出整数 (Python)
    1004 成绩排名 (Python)
    1003 我要通过! (Python)
    1008 数组元素循环右移问题 (Python)
    如何使用SSH秘钥链接Github
    在windows下如何正确安装curses模块
    面向数据结构C基础知识点(个人向)
    用Python实现链式调用
    python重点串讲
  • 原文地址:https://www.cnblogs.com/popodynasty/p/13841455.html
Copyright © 2020-2023  润新知