黑马程序员技术交流社区

标题: 恍然大悟 接口就是就是对外提供规则 [打印本页]

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

作者: 洋葱头头    时间: 2015-10-29 17:24
对外提供方法
作者: 杜佳林    时间: 2015-10-29 17:31
有点没看懂  你没实现接口 然后再写方法的话不就相当于直接在抽烟老师类和学生类上定义方法了 而不是重写了吧
作者: 北极的男娃    时间: 2015-10-29 17:51
杜佳林 发表于 2015-10-29 17:31
有点没看懂  你没实现接口 然后再写方法的话不就相当于直接在抽烟老师类和学生类上定义方法了 而不是重写了 ...

是呀  所以接口没有重写要求  抽象类有重写要求
作者: JYcainiao    时间: 2015-10-29 19:34
北极的男娃 发表于 2015-10-29 17:51
是呀  所以接口没有重写要求  抽象类有重写要求

接口的方法必须重写……   接口的方法都是抽象的方法  默认public  abstract修饰的   
作者: C威    时间: 2015-10-29 21:23
狮子有年龄,腿的个数是属性
吃肉是行为
有些狮子成精了会飞
这个会飞的狮子就是特有的一个规则
作者: 我若为神    时间: 2015-10-29 21:25
66666666666666
作者: 北极的男娃    时间: 2015-10-30 21:37
JYcainiao 发表于 2015-10-29 19:34
接口的方法必须重写……   接口的方法都是抽象的方法  默认public  abstract修饰的    ...

不是必须的  只要你子类不实现他就没事  你可以试试
作者: JYcainiao    时间: 2015-10-30 22:06
北极的男娃 发表于 2015-10-30 21:37
不是必须的  只要你子类不实现他就没事  你可以试试

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

如果不继承接口当然不用重写了  只要继承了  一定要重写的  除非接口是空的……
作者: JYcainiao    时间: 2015-10-30 22:11
北极的男娃 发表于 2015-10-30 21:37
不是必须的  只要你子类不实现他就没事  你可以试试

或者接口根本没有抽象方法……
作者: 北极的男娃    时间: 2015-10-30 22:12
JYcainiao 发表于 2015-10-30 22:11
或者接口根本没有抽象方法……

                    yes
作者: JYcainiao    时间: 2015-10-30 22:17
北极的男娃 发表于 2015-10-30 22:12
yes

你在逗我……  没方法  你要接口有毛用啊{:3_47:}
作者: JYcainiao    时间: 2015-10-30 22:18
北极的男娃 发表于 2015-10-30 22:12
yes

莫非你要用常量?{:3_65:}




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