Java面向对象之——继承(1)

前言

       提起面向对象,就不得不说面向对象的三大特征:封装性、继承性、多态性。今天,小编就带领大家学习Java中的继承。继承是多态的前提,如果没有继承,就没有多态。继承主要解决的问题是:共性抽取。继承最大的好处就是代码的复用。我们以员工类,讲师类和助教类来举例。员工类有姓名,年龄,工号,工作时间属性,有工作,获得薪酬的方法,讲师类和助教类也都有姓名,年龄和工号,工作时间四个属性,也都拥有获得报酬的方法,也都需要工作,但是工作的内容不同,讲师的工作是讲课,助教的工作是辅助讲师讲课(这其实就是方法的重写)。除此之外,讲师还有自己独特的方法,发表论文,助教也有自己独特的方法,维持教学秩序。在这个类图中,我们把员工类称为父类,把讲师类和助教类称为子类。子类既可以拥有父类的属性和方法,同时又拥有自己专有的内容。下面根据类图我们来进行一下继承的代码实现:

继承类图以及代码实现(extends关键字) 

image.png

//定义一个父类:员工类
public class Employee {
    //成员变量
    private String name;
    private int age;
    private double workHour;
    private String id;
    //无参构造函数
    public Employee() {
    }
    //全参构造函数
    public Employee(String name, int age, double workHour, String id) {
        this.name = name;
        this.age = age;
        this.workHour = workHour;
        this.id = id;
    }
    //成员方法:工作方法
    public void work(){
        System.out.println("工作!");
    }
    //成员方法:获取报酬方法
    public double getSalary(double workHour){
        double salary=100* workHour;
        return salary;
    }
    //Getter和Setter方法
    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 double getWorkHour() {
        return workHour;
    }

    public void setWorkHour(double workHour) {
        this.workHour = workHour;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

}

//定义了员工的子类:讲师
public class Teacher extends Employee {
    @Override
    public void work() {
        System.out.println("讲课");
    }

    public void publishPaper(){
        System.out.println("讲师发表论文");
    }
}

//定义父类的另一个子类:助教类
public class Assistant extends Employee{
    @Override
    public void work(){
        System.out.println("辅助教学");
    }

    public void orderKeeper(){
        System.out.println("助教帮助讲师维持课堂秩序");
    }
}

 总结

【1】继承中的两大概念:

①父类,也可以叫做基类,超类

②子类,也可以叫做派生类

【2】继承关系当中的特点:

1.子类可以拥有父类的"内容"

2.子类还可以拥有自己专有的内容

【3】继承关系:is-a

在继承类中,“子类就是一个父类”。也就是说,子类可以被当作父类看待。父类是员工,子类是讲师,那么“讲师就是一个员工”。关系:is - a。 A teacher is an employee.

【4】父类和子类的格式

①定义父类的格式:

public class 父类名称{    

            //...

}

②定义子类的格式:extends关键字(继承)

public class 子类名称 extends 父类名称{    

           //...

}

【5】类有五大结构:成员变量   成员方法   无参构造函数    有参(全参)构造函数    Getter和Setter方法

继承当中如何访问成员变量和成员方法?请见博客:https://blog.csdn.net/wtt15100/article/details/108117150

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/108116866
今日推荐