本问题已经有最佳答案,请猛点这里访问。
我理解这两者之间的技术差异,但我不明白为什么一个比另一个更好用?有人能给我举一个例子来帮助我区分一个优势胜过另一个吗?
例如:如果我正在做一个RPG游戏,我正在做一些治疗项目。UML图是什么样子的?我会为项目使用接口,然后修复项目或抽象类吗?
当u r项目经理时使用接口,当u r团队领导时使用抽象类:)
我不知道真正的区别。但重要的一点是,任何类只能扩展一个类,但它可以实现更多的接口。因此,根据需求,应该做出决定。
对不起,您是说接口基本上应该是层次结构的顶层,比如字符?那么子类将是抽象的,比如敌人或玩家?
这对你也有帮助。stackoverflow.com/q/8531292/1055241
何时使用接口
接口基本上是用来继承行为的,我们知道接口只能有抽象方法。当一个类实现这个接口时,它必须实现它的所有抽象方法(除非类本身是一个抽象类),因此它按照接口定义的方式进行行为。
例如,如果希望类的行为像线程一样。您需要实现Runnable接口并重写其run()方法。
我们需要继承两种或更多形式的行为。
接口基本上是在我们知道要做什么的时候创建的,但是我们不知道如何做。为了简单地解释,我会说,假设有5个任务你知道必须完成。但有不同的方法可以做到这一点。任何实现它们的类都可以以它们希望的任何方式来实现它们。因此,创建一个接口并将您的方法放入其中。
何时使用抽象类
我们知道抽象类既可以有抽象的方法,也可以有具体的方法。
同样的例子,如果您有5个任务要完成,但是对于一个任务,有一个默认的方法可以完成,那么您希望定义它的主体,并且在接口中不能这样做。
在本例中,我们将创建一个抽象类。放置4个抽象方法和一个具体方法,这些方法将直接由其子类继承,他们不需要自己定义它。但是,如果他们愿意,他们可以覆盖它的功能。
还要记住,一个类一次只能扩展一个抽象类。