(29)成员定义在类中,定义在接口中,如何选择

简单说:共性定义在类中,个性定义在接口中


学生的共性是学习,对于吸烟这个函数,若定义在学生类中,则每个对象及其子类都吸烟,这是不符合常理的。所以用接口定义吸烟这个功能,学生类中的吸烟学生类既然还是学生,就必定学习,所以继承学生类,实现该类学生的个性吸烟接口。

随着研究对象的不同,吸烟不一定就是接口,比如研究的就是烟瘾患者,就是类中的函数,这类研究对象的个性再定义在接口中

比如研究球员,类内可定义打球函数,有的球员学习游泳,那么可以定义关于游泳的接口,对于会游泳的球员类实现游泳接口,继承球员类




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("抽烟的学生啊!!");
    }

}


posted @ 2017-07-08 10:24  测试开发分享站  阅读(142)  评论(0)    收藏  举报