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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

虽然老师讲过了 接口就是对外暴露规则,但是做作业还是忘了,刚才写老师、学生类,定义了一个接口提供抽烟的属性。但是写抽烟的老师类(SmokeTeacher)和SmokeStudent类时忘了加上implement 接口了,而且编译、运行都没错。我是看着看着突然想起来还要接口呢。然后我就懵了,这接口不是没有意义了吗,想了半天才明白过来,它是规则,加上implement 接口就必须按他定义的抽象方法重写写,你不实现它,重不重写没关系,不会报错,这点跟抽象类就不一样,抽象类必须要子类重写它的抽象方法。规则!规则!规则!重要的事情说三遍。

13 个回复

倒序浏览
对外提供方法
回复 使用道具 举报
有点没看懂  你没实现接口 然后再写方法的话不就相当于直接在抽烟老师类和学生类上定义方法了 而不是重写了吧
回复 使用道具 举报
杜佳林 发表于 2015-10-29 17:31
有点没看懂  你没实现接口 然后再写方法的话不就相当于直接在抽烟老师类和学生类上定义方法了 而不是重写了 ...

是呀  所以接口没有重写要求  抽象类有重写要求
回复 使用道具 举报
北极的男娃 发表于 2015-10-29 17:51
是呀  所以接口没有重写要求  抽象类有重写要求

接口的方法必须重写……   接口的方法都是抽象的方法  默认public  abstract修饰的   
回复 使用道具 举报
狮子有年龄,腿的个数是属性
吃肉是行为
有些狮子成精了会飞
这个会飞的狮子就是特有的一个规则
回复 使用道具 举报
66666666666666
回复 使用道具 举报
JYcainiao 发表于 2015-10-29 19:34
接口的方法必须重写……   接口的方法都是抽象的方法  默认public  abstract修饰的    ...

不是必须的  只要你子类不实现他就没事  你可以试试
回复 使用道具 举报
北极的男娃 发表于 2015-10-30 21:37
不是必须的  只要你子类不实现他就没事  你可以试试

不对吧  只要你继承了  不重写会报错啊  之前我写的时候碰到过的
回复 使用道具 举报
北极的男娃 发表于 2015-10-30 21:37
不是必须的  只要你子类不实现他就没事  你可以试试

如果不继承接口当然不用重写了  只要继承了  一定要重写的  除非接口是空的……
回复 使用道具 举报
北极的男娃 发表于 2015-10-30 21:37
不是必须的  只要你子类不实现他就没事  你可以试试

或者接口根本没有抽象方法……
回复 使用道具 举报
JYcainiao 发表于 2015-10-30 22:11
或者接口根本没有抽象方法……

                    yes
回复 使用道具 举报

你在逗我……  没方法  你要接口有毛用啊{:3_47:}
回复 使用道具 举报

莫非你要用常量?{:3_65:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马