黑马程序员技术交流社区

标题: 多态----转型的应用方式 [打印本页]

作者: 追逐    时间: 2014-3-15 15:23
标题: 多态----转型的应用方式
/*
        基础班
                学习,睡觉
        高级班
                学习,睡觉
        可以将这两项进行抽取。写一个转型实例
*/
//定义一个学生类。因为学习的方式不一样。所以定义一个抽象函数。而类也必须是抽象的
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()); //运用多态的形式打印高级班的功能
        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2