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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迷失的小Z 中级黑马   /  2014-11-14 22:58  /  1239 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类内所有的方法都是抽象的就可以用interface来定义,而且interface编译的文件也是*.class
那么问题来了,如果说用哪一个关键字定义一个类,没有标明是否抽象,那么是不是class和interface都是答案……

13 个回复

倒序浏览
楼主需要搞清接口与抽象类,首先,接口里面的变量及函数的定义格式是:例如里面的变量是public static final var=10;也就是公共的静态常量,方法是public abstract 返回值类型 函数名称(参数...);而抽象类里面既可以有抽象方法也可以没有抽象方法只有具体方法(非abstract修饰的,当然此种方法必须有方法体),当然,里面也可以什么方法都没有,而变量不必是常量,也可以是变量,只是含有抽象方法的类都是抽象类;其次,接口子类不能创建对象,而抽象类的子类可以创建对象;最后,抽象类还可以实现接口:)
回复 使用道具 举报
win_top1 发表于 2014-11-14 23:38
楼主需要搞清接口与抽象类,首先,接口里面的变量及函数的定义格式是:例如里面的变量是public static fina ...

哥们你说的这些我都知道,因为接口其实就是没有变量和非抽象方法的比抽象类还抽象的类(别问我为什么这么说,视频里那哥们就是这么说的),所以我纠结的是是不是接口就是一种类,
回复 使用道具 举报
因该是一种类,可以理解为一种特殊的抽象类,定义一个接口,编译之后会生成字节码文件
回复 使用道具 举报
学习学习:lol
回复 使用道具 举报
.ヤ牧马人〃 来自手机 中级黑马 2014-11-16 13:08:58
地板
接口本身就是一种类,一种特殊的类,只是接口里的方法都是抽象的
回复 使用道具 举报
.ヤ牧马人〃 发表于 2014-11-16 13:08
接口本身就是一种类,一种特殊的类,只是接口里的方法都是抽象的

接口不是类。
回复 使用道具 举报

求解释……
回复 使用道具 举报

这只是一种定义,没什么好解释的
回复 使用道具 举报
MeryStyle 发表于 2014-11-20 16:57
这只是一种定义,没什么好解释的

原话是说当抽象类中出现没有非抽象方法时,可以用接口来定义,但没有说它不是类,而且定义接口生成的字节码文件也是*.class文件,而且接口也可以实现多态,证明其本身就是一种类,所以…………
总之谁来解释解释啊……这问题弄不明白朕寝食难安啊……
回复 使用道具 举报
迷失的小Z 发表于 2014-11-20 21:12
原话是说当抽象类中出现没有非抽象方法时,可以用接口来定义,但没有说它不是类,而且定义接口生成的字节 ...

接口不是类,它是一种行为契约,为各个类间的交互提供行为规范。接口的意义在于,谁都可用,只要你想要拥有某功能(接口),你就实现它。类就是那个主体,那个实现某个接口的主体。说的简单一点: 类更像是一种“模具”,而接口更偏向一种“能力”,一种实现该接口的类必须履行的“契约”
回复 使用道具 举报
迷失的小Z 发表于 2014-11-20 21:12
原话是说当抽象类中出现没有非抽象方法时,可以用接口来定义,但没有说它不是类,而且定义接口生成的字节 ...

深究这个没什么意思, 了解接口的特性就行了
回复 使用道具 举报
迷失的小Z 发表于 2014-11-15 21:51
哥们你说的这些我都知道,因为接口其实就是没有变量和非抽象方法的比抽象类还抽象的类(别问我为什么这么 ...

接口当然是类啊,只是特殊的一种类罢了
回复 使用道具 举报
liangkun097 发表于 2014-11-24 02:02
接口当然是类啊,只是特殊的一种类罢了

有说是的有说不是的,但接口是真的生成一个*.class文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马