简单说:共性定义在类中,个性定义在接口中
学生的共性是学习,对于吸烟这个函数,若定义在学生类中,则每个对象及其子类都吸烟,这是不符合常理的。所以用接口定义吸烟这个功能,学生类中的吸烟学生类既然还是学生,就必定学习,所以继承学生类,实现该类学生的个性吸烟接口。
随着研究对象的不同,吸烟不一定就是接口,比如研究的就是烟瘾患者,就是类中的函数,这类研究对象的个性再定义在接口中
比如研究球员,类内可定义打球函数,有的球员学习游泳,那么可以定义关于游泳的接口,对于会游泳的球员类实现游泳接口,继承球员类
public class Student {
public void study() {
System.out.println("学生都学习啊!!");
}
}
public interface Smoking {
public abstract void smoke();
}
public class smokeStudent extends Student implements Smoking {
@Override
public void smoke() {
// TODO Auto-generated method stub
System.out.println("抽烟的学生啊!!");
}
}