抽象类或接口Java

抽象类或接口Java,java,interface,abstract,Java,Interface,Abstract,可能重复: 我还是一名Java的学生,我遇到了抽象类和接口 现在,当您创建一个抽象类时,您可以编写如下方法: public abstract void something(); public void something(); 但是,当您在界面中创建方法时,它如下所示: public abstract void something(); public void something(); 现在,我不是瞎子,我可以看到有一些不同,我也知道你扩展了一个抽象类,实现了一个接口 但是有人能告诉我

可能重复:

我还是一名Java的学生,我遇到了抽象类和接口

现在,当您创建一个抽象类时,您可以编写如下方法:

public abstract void something();
public void something();
但是,当您在界面中创建方法时,它如下所示:

public abstract void something();
public void something();
现在,我不是瞎子,我可以看到有一些不同,我也知道你扩展了一个抽象类,实现了一个接口


但是有人能告诉我区别是什么吗?也许可以举一个例子,说明你会使用其中一个而不是另一个

这两个程序之间没有区别。区别在于抽象类可以包含用于所有实现的公共逻辑,而接口不能

抽象基本上意味着该方法没有实现。实现必须由子类提供。因此,不能创建具有抽象方法的类的实例


现在Java中的接口只是方法签名的集合。它们不能包含设计上的实现。因此,抽象关键字是多余的。我们不能创建接口的实例,只能创建实现接口的具体类。

很抱歉,请删除我的帖子:避免询问有关Java基础知识的问题。谷歌总是在那里帮助你。只有当你做了调查,仍然不理解,但在问题中陈述你发现了某某的解释,等等,但你仍然感到困惑时才提问。@ADTC谢谢你,我会在以后记住的。不客气。令人伤心的是,很多老兵都懒得指导像你这样的新用户。他们很快就能标记出重复的问题并结束提问。我不想让你经历我第一次来这里时的经历我不会说他们很刻薄,但更像是冷漠冷漠。谢谢你的回复!接口是否类似于C中的头文件顺便说一句,我可以创建抽象类的实例,但它们应该引用扩展具体类的实例。Like AnAbstractClass x=新的AConcreteClassExtendingAnAbstractClass;很抱歉,我不知道如何正确解释这一点,因此使用scare引号。@ADTC接口就像一个合同,指定对象支持哪些操作。例如,您可以使用接口作为函数参数,如中所示。另一方面,C中的头文件可以包含任意函数定义,而不一定只包含抽象类方法的定义。头文件甚至可以包含内联函数的实现