永发信息网

在JAVA中,接口和抽象类有何异同?

答案:6  悬赏:30  手机版
解决时间 2021-06-04 04:34
  • 提问者网友:藍了天白赴美
  • 2021-06-03 10:29
在JAVA中,接口和抽象类有何异同?
最佳答案
  • 五星知识达人网友:山君与见山
  • 2021-06-03 10:48

那就一个个来说吧,呵呵,可能不全。


第一,抽象类体内可以有被实例的方法,但必须至少有一个抽象方法,而接口的方法必须是抽象的;


第二,抽象类只是被继承一次,而一个类可以有N个接口;


第三, Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。


第四,Java接口的方法只能是抽象的和公开的,而抽象类可以有私有的属性~~~


呵,我的认知就这么多了。如果有兴趣可去这里看看: http://www.tsp2c.cn/indextrans.htm 希望我说的对你有所帮助哦

全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-06-03 14:57

1.抽象类可以有普通的成员变量而接口不可以有,

2.抽象类可以包含非抽象的普通方法而接口包含的都是抽象方法。

3.抽象类可以有构造方法而接口不可以有。

4.一个类可以实现多个接口但只能实现一个抽象类,

  • 2楼网友:妄饮晩冬酒
  • 2021-06-03 14:39
1.它们中都有抽象方法。 2.抽象类中可以有非抽象方法。 3.接口可以extends接口 4.抽象类可以实现(implements)接口.
  • 3楼网友:执傲
  • 2021-06-03 13:20
呵呵,给你举个例子吧。比如一个公司,有老板,老板聘的经理,还有员工, 类就是员工,抽象类就是经理,接口就是老板。 能理解吗? 接口里就是给个方法,但是他自己不做,比如老板说我要那个文件,给我定个机票,我要那个策划方案等,都是下面人做。老板只说不做。 抽象类给的方法,有的他自己做,有的其他人做。比如经理说我要那个文档,员工就要发给他,但是他自己也要做点事,比如拿方案给老板看。经理又说又做。 一般类给的方法,就是什么都要做,都要实现。属于不说必须做的。 呵呵呵。这个比喻能明白点了吗?如果不明白的话还是建议找本java基础的书看看相关内容。 1、 java面向对象的思想,楼主也知道了吧,万物皆对象。 把事物的一个一个抽象到编程语言来,就成了类。 比如:学生 他就是一个类,他有属性,年龄 身高 成绩 班级 等等属性, 上课,放学,吃饭,睡觉 等方法。 相信楼主是知道的。 2、 说道 抽象类,就要说抽象方法,抽象方法是没有方法体只有方法名的方法 比如 ,public void eat(); 就是相当于声明。 好了,抽象类是 类中至少有一个抽象方法的类。 因为他有方法没有实现 ,所以他不能实例化 对象。 只能等 别的子类 继承他。 3、 而接口就是 如果一个类中所有方法都是抽象方法,那么 他就是一个接口,接口有统一标准的作用他比抽象类还狠吧,所有方法都没有实现。 一个类只可以继承一个类,他只有一个父类,但是接口他就可以 实现(类似继承) 多个接口。这弥补了java中没有多继承的 缺点。
  • 4楼网友:七十二街
  • 2021-06-03 12:20

接口就是里面的方法完全抽象的抽象类了

抽象类里面可以存在实现了的方法。接口不行。

  • 5楼网友:封刀令
  • 2021-06-03 11:30

简单说,就是一个超类有自己的方法,子类继承超类的方法,但是子类不想继承超类的方法, 这时就要抽象类来解决.抽象类的抽象方法没有方法体({}),继承的子类可以写自己方法体, 接口指定的所有方法都是抽象的,接口比抽象类更抽象.

需要具体点的回答

在Java语言中,接口(Interface)是对符合接口需求的类的一套规范。接口与包相似,也是用来组织应用中的各类并调节它们的相互关系的一种结构,更准确地说,接口是用来实现类间多重继承功能的结构 1 接口概念 接口主要作用是可以帮助实现类似于类的多重继承的功能。在Java中,出于简化程序结构的考虑,不再支持类间的多重继承而只支持单重继承,即一个类至多只能有一个直接父类。然而在解决实际问题的过程中,仅仅依靠单重继承在很多情况下都不能将问题的复杂性表述完整,需要其他的机制作为辅助。 2 接口声明 Java中声明接口的语法如下: [public] interface 接口名 [extends 父接口名列表] { //接口体; //常量域声明 [public] [static] [final] 域类型 域名=常量值; //抽象方法声明 [public] [abstract] 返回值 方法名(参数列表) [throw异常列表]; } 从上面的语法规定可以看出,定义接口与定义类非常相似,实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类 (1)接口中的属性都是用 final修饰的常量, (2)接口中的方法都是用abstract修饰的抽象方法,在接口中只能给出这些抽象方法的方法名、返回值和参数列表,而不能定义方法体,即仅仅规定了一组信息交换、传输和处理的“接口” 2 接口的实现 一个类要实现某个或某几个接口时,有如下的步骤和注意事项: (1)在类的声明部分,用implements关键字声明该类将要实现哪些接口; 如下: class 类名 implements 接口{ } (2)如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法,即为所有抽象方法定义方法体,而且方法头部分应该与接口中的定义完全一致,即有完全相同的返回值和参数列表; (3)如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法。 (4)一个类在实现某接口的抽象方法时,必须使用完全相同的方法头。 (5)接口的抽象方法,其访问限制符都已指定是public,所以类在实现方法时,必须显式地使用public修饰符。 一个接口的定义由关键字interface开始以包含pubic final static数据。但这不是必须的,即子类也可以使用一个方并包含一套public abstract方法,接口也可为使用接口,一个类必须声明实现(关键字implements)接口,指定的参数个数和返回类型定义每个方法。当没有缺省的实现用来继承时,通常使用接口而不使用抽象类。 当某个类实现一个接口时,也有同样的“是一个”继承性关系。并且必须根据接口中为实现一个以上的接口,只要在类定义中的关键字implements后面列出接口名逗号分隔。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯