A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© FlyMeToTheMoon 中级黑马   /  2014-11-5 10:45  /  2143 人查看  /  14 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

如题 抽象类和接口的区别 刚学 不太明白

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

14 个回复

倒序浏览
我想接口和抽象类中:
1.抽象类可以有自己的私有方法和变量,但是接口不行,接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的。
2.实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法
3.接口可以实现多重继承
回复 使用道具 举报
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某
些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
接口(interface)是特殊的抽象类。
语法上有以下区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4.  抽象类中的抽象方法的访问类型可以是 public,protected的,但接口中的抽象方法只能是 public 类型的,并且默认即为 publicabstract 类型。
5.  抽象类中可以包含静态方法,接口中不能包含静态方法
6.  抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,
但接口中定义的变量只能是public static final 类型,并且默认即为public static final 类型。
7.  一个类可以实现多个接口,但只能继承一个抽象类。  


评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
接口是功能的分类实现所要求的,可继承,可实现,体现在实现类上可以是组合关系的,抽象类是提取出其共性,不能创建实例,供子类进行实现的。
回复 使用道具 举报
feng_0207 发表于 2014-11-5 12:44
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类, ...

抽象类不可以创建对象,也不会有构造方法吧?
回复 使用道具 举报
学习啦@!!!!!!!
回复 使用道具 举报
HelloWorld! 发表于 2014-11-5 18:12
抽象类不可以创建对象,也不会有构造方法吧?

构造器存在的目的是初始化,不是创建对象。抽象中的域不一定是final,可以改变其值,所以可以用直接赋值初始化也可以用构造器初始化!所以抽象类可以有构造器!
回复 使用道具 举报
zjy519893509 发表于 2014-11-5 22:49
构造器存在的目的是初始化,不是创建对象。抽象中的域不一定是final,可以改变其值,所以可以用直接赋值 ...

好吧,有点深奥,暂时理解不了
回复 使用道具 举报
简单来说,
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用

评分

参与人数 1技术分 +2 收起 理由
杨佳名 + 2 加油!!

查看全部评分

回复 使用道具 举报
Doit 中级黑马 2014-11-10 18:14:30
10#
总结得很好
回复 使用道具 举报
说得很好啊
回复 使用道具 举报
yangsing0 来自手机 中级黑马 2014-11-10 19:09:55
12#
抽象类不可以创建对象,也不会有构造方法吧?
回复 使用道具 举报
学习了......
回复 使用道具 举报
1、2楼总结挺好。
回复 使用道具 举报
feng_0207 发表于 2014-11-5 12:44
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类, ...

总结的比较全面啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马