核心:代码的复用性
例子:有学生和老师两个类,老师和学生的一天都差不多,吃饭,睡觉,上班等等。可以将这些相同的行为,写一个Person抽象类,提取出来。那些不同的行为,比如做些什么,可以写成抽象方法,各种去实现这些方法,Student,和Teacher、去继承这个类,并且实现这些抽象方法。就可以实现代码的复用了。
提取出来的方法,包括相同的不同的,不同自己去实现,相同的已经实现,
package com.guanzhu.servlet;
abstract class Person {
abstract void doSome();
void qiChuang(){
System.out.println("起床!");
}
void xiShu(){
System.out.println("洗漱!");
}
void jinShi(){
System.out.println("正在进食!");
}
void shuiJiao(){
System.out.println("睡觉!");
}
void day(/*Person p*/){
qiChuang();
xiShu();
doSome();
jinShi();
shuiJiao();
}
}
学生类
package com.guanzhu.servlet;
public class Student extends Person{
@Override
void doSome() {
System.out.println("学生在上课!");
}
public static void main(String[] args) {
Person person = new Student();
person.day();
}
}
老师类
package com.guanzhu.servlet;
public class Teacher extends Person {
@Override
void doSome() {
System.out.println("老师在讲课!!!");
}
public static void main(String[] args) {
Person person=new Teacher();
person.day();
}
}
各自执行自己的mian方法,运行结果