Java继承

  • Post author:
  • Post category:java

Java继承入门

继承:extends
extend原意:扩展,延长,持续,包括,波及

继承规则:

第一:一个子类只能直接继承一个父类,不能继承多个父类

Person父类:

public class Person {
    public String name;
    public int age;
    public char sex;

    public Person(String name) {
        this.name = name;
    }
    public Person() {
    }

    public Person(String name, int age, char sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
     public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getSex() {
        return sex;
    }

   }

子类student

public class Student extends Person{
    private String id;
    private String address;
    private Report report;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    @Override
    public void play(){
        System.out.println("运动");
    }
    public Student(){
   
    }

    public Student(String name, String id) {
        super(name);
        this.id = id;
    }

    public Report getReport() {
        return report;
    }

    public void setReport(Report report) {
        this.report = report;
    }

    public Student(String id) {
        this.id = id;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }


    public Student(String name, String id, int age, char sex, String address) {
        super(name, age, sex);//还要实验super
        this.id = id;
        this.address= address;
        this.name=name;
        this.sex=sex;
        this.age =age;
    }
    public Student(String name, String id, int age, char sex, String address,Report report) {
        super(name, age, sex);//还要实验super
        this.id = id;
        this.address= address;
        this.name=name;
        this.sex=sex;
        this.age =age;
        this.report = report;
    }
    public Student(String name, String id, Report report) {
        super(name);
        this.name=name;
        this.id = id;
        this.report = report;
    }
}

第二:可以多层继承(间接继承)

名称 关系
人(Person) 父类
学生(Student) Person的子类,UniversityStudent的父类
大学生(UniversityStudent) 学生(Student)的子类

明显UniversityStudent的父类只是Student,在Student类里并没有name,sex等属性,
但UniversityStudent类却能够使用到Person里的属性, 所以子类UniversityStudent是可以间接继承(多层继承)到上上级父类Person

public class UniversityStudent extends Student{
    
    public UniversityStudent() {
    }
    //在这个类里并没有定义属性,却能够继承来自Person类里的name、id等属性。
    
    public UniversityStudent(String name, String id) {
        super(name, id);
    }

    public UniversityStudent(String id) {
        super(id);
    }

    public UniversityStudent(String name, String id, int age, char sex, String address) {
        super(name, id, age, sex, address);
    }

    public UniversityStudent(String name, String id, int age, char sex, String address, Report report) {
        super(name, id, age, sex, address, report);
    }

    public UniversityStudent(String name, String id, Report report) {
        super(name, id, report);
    }
    
}


版权声明:本文为m0_49191104原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。