首先我们要明白一点,继承的出现解决了什么问题?继承主要解决的问题就是:共性抽取。
用一个例子来解释说明:
有一个父类员工类,父类下有两个子类讲师类和助教类,讲师类,助教类和员工类中都具备姓名,工号这俩个属性,那么就可以使用继承。“子类就是一个父类”,讲师也属于员工,同时也具备员工中的属性,所以可以说讲师就是一个员工。
用代码进一步解释说明共性抽取:
定义一个父类,其实就是一个普通类的定义。
package cn.itcast.day05.demo03;
// 父类 定义为员工
public class Employee {
public void method(){
System.out.println("方法执行!");
}
}
定义两个子类,讲师类和助教类,同时继承父类Employee。
package cn.itcast.day05.demo03;
//定义了一个员工的子类 讲师类
public class Teacher extends Employee{
}
package cn.itcast.day05.demo03;
// 定义了一个员工的子类 助教类
public class Assistant extends Employee {
}
主函数:
package cn.itcast.day05.demo03;
public class Demo01Extends {
public static void main(String[] args) {
Teacher teacher=new Teacher();
teacher.method(); //使用父类中的方法,子类中并未定义任何方法
Assistant assistant=new Assistant();
assistant.method(); //使用父类中的方法,子类中并未定义任何方法
}
}
运行结果:
扫描二维码关注公众号,回复:
9718521 查看本文章
结果分析:
讲师类和助教类这两个子类中并未定义任何方法,但是都继承了父类Employee,父类中定义了method方法,在主函数中,子类进行实例化之后直接用对象.父类中的方法即可直接父类中的方法,实现了继承中的共性抽取,在实际代码书写过程中或者代码优化时,可以考虑从这方面优化,例如方法的执行体相同但是只有方法中的返回的参数不同可以考虑将方法抽离出来到一个类中,让要使用这个方法的类继承抽离出来的类,直接调用方法即可。
高大上的代码其实大多数都是最简单的基础知识的灵活应用!