-
慕婉清6462132
比如说生物和人 此时生物可以当做接口,人当做实现生物的抽象类,男人女人作为具体实现类,为什么可以这样设计?因为生物是个非常非常抽象的概念,你很难抽象出它的具体行为(也就是具体的方法实现),此时可以当做接口,人为何可以作为抽象类,因为他可以有具体的行为动作实现,比如,摸爬滚走,但是可能男人女人的性征不一样,同时可能还有一些公有的行为 但是行为特征不一样 这可以当做抽象类的抽象方法,让子类实现。大概是这样。
-
哆啦的时光机
接口表示一个能力/行为。例如:人会跑,狗也会跑,就可以定义接口IRunable。 使用接口很好实现组件间解耦。抽象类就是为了实现多态,使代码更方便扩展。
-
慕雪6442864
接口就好像是100% 纯天然的抽象类。
-
慕的地6264312
接口的话更偏向于为一群类定一个协议, 而抽象类的话已经向实现迈进了一步。例如模板方法模式中就用到了抽象类,实现了一些通用的方法, 而将不同的方法延迟到子类再实现。
-
婷婷同学_
举个简单的例子,你现在想要抽象所有国家的人,那么你会想到抽象成一个接口,然后有个方法叫sayHello:public interface Human{ String sayHello();}OK,现在每个实现了这个接口的对象只要实现sayHello方法,就表示了各个国家的人,他们拥有了不同的打招呼的的方式。但是现在业务复杂起来了,你需要这些人还具备一些通用的能力,比如cry,walk,那么这个时候,你是不是应该考虑把Human抽象成为一个抽象类,像这样:public abstract class Human{ public abstract String sayHello(); public String cry(){ System.out.println("wu~wu~wu~wu~wu~"); } public String walk(){ System.out.println("左右左 左右左"); }}总结一下,就是如果只有抽象的方法,那么就用接口,如果还有通用的具体方法实现,则用抽象类
-
波斯汪
参考:The Java™ Tutorials :: Learngin The Java Language :: Interfaces and Inheritances :: Inheritances :: Abstract Methods and Classes :: Abstract Classes Compared to Interfaces
-
月关宝盒
抽象类用于抽象事物,接口抽象行为
-
料青山看我应如是
该类定义统一操作,为对象提供方法