写的自己对接口与多态的理解。0基础学JAVA,目前有效学时为14天。
多态目的在用同一个方法(公用方法,猫,狗,eat),在一定的条件前提下(有父类和子类两个类,才能利用代码替代原理用父类变量引用子类对象)通过传递不同类型的子类的对象,实现各类的同一个公用方法;
如果需要输出符合一定条件的需求的类的共有的方法,
父类:Person 公有成员方法eat;
接口:抽烟 smokeInter
Person子类:Student,继承person 成员方法eat;
Person子类:Worker, 继承person成员方法eat;
Student子类BadStudent,extends Student,implement smokeInter实现接口方法smokeInter
Worker子类BadWorker,继承Worker的eat方法,实现(加载)抽烟接口,实现抽烟功能,implement smokeInter
需求:1.输出学生吃A饭、工人吃B饭、坏学生吃C饭、坏工人吃D饭
2.输出坏学生抽烟,坏工人抽烟
需求1.在测试类中定义方法eat,传入参数为父类Person p
public eat(Person p){
if(p instanceof Student){ //如果传入的对象为Student类的对象,执行((Student) p).eat();
((Student) p).eat();q其他类似,最后一个else
((BadWorker) p).eat();}
}
需求2.
public void smoke(smokeInter s){
if(s instanceof BadStudent){//如果传入对象为坏学生类的子类,输出(BadStudent s).smoke();
(BadStudent s).smoke();}
else{
(BadWorker s).smoke();}//或者为坏工人类的对象,输出(BadWorker s).smoke()
}
子类把这个方法写入接口,然后运用接口作为父类,传入参数为这些拥有特定需求接口的类的对象,调用这个特有方法,实现输出特定范围内那些类的那些共性方法。