黑马程序员技术交流社区
标题: 抽象类和接口的区别 [打印本页]
作者: FlyMeToTheMoon 时间: 2014-11-5 10:45
标题: 抽象类和接口的区别
如题 抽象类和接口的区别 刚学 不太明白
作者: Freedom0013 时间: 2014-11-5 11:56
我想接口和抽象类中:
1.抽象类可以有自己的私有方法和变量,但是接口不行,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的。
2.实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法
3.接口可以实现多重继承
作者: feng_0207 时间: 2014-11-5 12:44
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某
些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
接口(interface)是特殊的抽象类。
语法上有以下区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是 public,protected的,但接口中的抽象方法只能是 public 类型的,并且默认即为 publicabstract 类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,
但接口中定义的变量只能是public static final 类型,并且默认即为public static final 类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
作者: Rain2692 时间: 2014-11-5 12:52
接口是功能的分类实现所要求的,可继承,可实现,体现在实现类上可以是组合关系的,抽象类是提取出其共性,不能创建实例,供子类进行实现的。
作者: HelloWorld! 时间: 2014-11-5 18:12
抽象类不可以创建对象,也不会有构造方法吧?
作者: 焦旭宁1 时间: 2014-11-5 21:02
学习啦@!!!!!!!
作者: zjy519893509 时间: 2014-11-5 22:49
构造器存在的目的是初始化,不是创建对象。抽象中的域不一定是final,可以改变其值,所以可以用直接赋值初始化也可以用构造器初始化!所以抽象类可以有构造器!
作者: HelloWorld! 时间: 2014-11-5 22:55
好吧,有点深奥,暂时理解不了
作者: 海赛尔 时间: 2014-11-10 18:09
简单来说,
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,
另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用
作者: Doit 时间: 2014-11-10 18:14
总结得很好
作者: touch_world 时间: 2014-11-10 18:44
说得很好啊
作者: yangsing0 时间: 2014-11-10 19:09
抽象类不可以创建对象,也不会有构造方法吧?
作者: yl82846094 时间: 2014-11-10 20:55
学习了......
作者: w239983684 时间: 2014-11-10 21:19
1、2楼总结挺好。
作者: DamonZh 时间: 2014-11-10 22:35
总结的比较全面啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |