黑马程序员技术交流社区

标题: abstract class和interface有什么区别? [打印本页]

作者: 黄敏文    时间: 2011-8-28 20:59
标题: abstract class和interface有什么区别?
我在张老师的Java就业面试大全里面abstract class和interface有什么区别? 的答案中的


4. 抽象类中的抽象方法的访问类型可以是publicprotected(默认类型,虽然
eclipse下不报错,但应该也不行)

这句中的默认类型的方法测了一下,也是可以的,不知道各位是怎么理解的
作者: 匿名    时间: 2011-8-28 21:14
应该可是public. protected的话就交由子类实现
作者: 匿名    时间: 2011-8-29 08:27
[color=darkorange]abstract class和interface有什么区别?[/color]答:abstract class 中可以有非抽象方法,而interface中的方法必须全是抽象的。
作者: 匿名    时间: 2011-8-29 13:36
abstract class 指的是抽象类
interface指的是接口

抽象类中的方法可以被继承其的子类所实现,如果方法也被abstract修饰 ,那子类就必须被重写,
接口中的所有方法必须是抽象方法,由实现它的类重写。

最主要一点  一个类可以实现多个接口,但是这个类只能有一个父类,也就是只能继承一个abstract class

例如class student extends person implement  Irun,Ipaly
{
.........................
}
作者: 匿名    时间: 2011-8-29 13:45
瓜和西瓜的关系:lol
作者: 徐西宏    时间: 2011-8-29 13:55
这是概念性的东西,理解最好,不要死记硬背
那么先比较一下抽象类与接口的相同点吧:
相同点:
  1、它们都代表系统的抽象层;
    2、都不能被实例化;
    3、都能包含抽象方法;
接下来就是不同点:
  1、在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现,提高代码的可重用性,这是抽象类的优势,而接口中只能包含抽象方法。
  2、一个类只能继承一个直接父类,这个类有可能 是抽象类;但一个类可以实现多个接口,这是接口的优势;
    3、接口中只有抽象方法,没有实例变量和静态方法。
希望楼主能理解!
作者: 匿名    时间: 2011-8-29 14:06
默认类型 是指的不封装方法吧 指利用default也可以继承和实现?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2