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 ----
原文地址:https://www.cnblogs.com/popodynasty/p/13841455.html