Java(六)——面向对象(2)-继承

一、继承介绍

通过继承,只需要编写额外的功能,不再需要重复代码

注意:

  • 在Java中,没有明确写extends的类,编译器会自动加上extends Object。所以,任何类,除了Object,都会继承自某个类
  • Java只允许一个class继承自一个类,因此,一个类有且仅有一个父类
  • 继承有个特点,就是子类无法访问父类的private字段或者private方法,把private改为protected子类就可以访问父类中的变量和方法
  • super关键字表示父类(超类,基类)
  • 在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法。如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句super();
public class Person{
    protected String name;
    protected int age;
    
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
}

public class Student extends Person{
    private String sex;
    
    public Student(String name, int age, String sex){
        super(name, age);
        this.sex = sex;
    }
    
    public String getName(){
        return "ok"+name       // 该name为父类中的name,  这里使用super.name,或者this.name,或者name,效果都是一样
    }
}

二、super关键字

// super的用法
1. super.成员变量    // 调用父类的成员变量
2. super(参数)    // 调用父类的构造方法
3. super.成员方法   // 调用父类的成员方法

三、向上转型

public class Person{
    
}

public class Student extends Person{
    
}

Person p = new Person;
Person p = new Student;

四、向下转型

可以强制向下转型,最好借助instanceof判断

Person p = new Student();
if (p instanceof Student) {
    // 只有判断成功才会向下转型:
    Student s = (Student) p; // 一定会成功
}
原文地址:https://www.cnblogs.com/linagcheng/p/12166765.html