/*
基础班
学习,睡觉
高级班
学习,睡觉
可以将这两项进行抽取。写一个转型实例
*/
//定义一个学生类。因为学习的方式不一样。所以定义一个抽象函数。而类也必须是抽象的
abstract class Students {
public abstract void study();
public void sleep() { //因为大众习惯都是躺着睡。所有可以直接写出来。个别的可以进行方法重写
System.out.println("躺着睡");
}
}
//定义一个基础班的类
class BaseStudents extends Students {
public void study() {
System.out.println("BaseStudents");
}
}
//定义一个高级班的类。而且这个哥们睡觉姿势和别人不一样
class AdvStudents extends Students {
public void study() {
System.out.println("AdvStudents");
}
//重写父类函数
public void sleep() {
System.out.println("站着睡");
}
}
//因为两个班里的学生都具有学习和睡觉的功能。所以把这两个功能抽取出来。放到一个类中。方便打印
class DoStudents {
public void doStudents(Students s) {
s.study();
s.sleep();
}
}
//运行类
class ZhuanXingDemo2 {
public static void main(String[] args) {
//创建打印功能的类
DoStudents ds = new DoStudents();
ds.doStudents(new BaseStudents()); //运用多态的形式打印基础班的功能
ds.doStudents(new AdvStudents()); //运用多态的形式打印高级班的功能
}
} |