黑马程序员技术交流社区

标题: 接口里可以定义变量和方法吗? [打印本页]

作者: 王虎    时间: 2012-10-13 11:28
标题: 接口里可以定义变量和方法吗?
如果是抽象类又是咋样呢?
作者: 杨志男    时间: 2012-10-13 11:41
在接口里当然可以定义变量和方法,只不过其中的变量都会自动是static和final的,而方法都没有方法体,就是说是抽象的,只是省略了abstract关键字
在抽象类中也可以啊,只是没有接口中限制的那么严格。
可以这样理解,接口就是抽象类的延伸,是为了解决“多继承”的问题,只不过名字叫“多实现”而已。
作者: 黑马王建伟    时间: 2012-10-13 11:44
本帖最后由 黑马王建伟 于 2012-10-13 11:48 编辑

一,接口
    接口中可以定义变量和方法头,但不能定义方法体,方法体由实现它的类来完成。
二,抽象类
    抽象类中可以定义变量、方法和抽象方法,
    抽象方法可有可无:有抽象方法,子类要实现抽象方法;没有抽象方法,表示该类不能被实例化。


作者: 沈佳龙    时间: 2012-10-13 11:52
抽象类不能生成对象,一个类中可以有一个或者多个抽象函数,这个类必须被声明为抽象类,抽象类只能被继承,继承抽象类之后就必须override这个抽象类里面的抽象函数。使用抽象类的作用就是使设计者忽略细节,将重心放在整个系统的设计上,抽象类出了提供重要的需要子类去实现的抽象方法外,也提供子类可以继承的变量和非抽象方法,如果某个问题需要使用继承才能更好的解决,比如子类除了需要实现父类的抽象方法,还需要从父类继承一些变量或者继承一些重要的非抽象方法,就考虑用抽象类。
作者: 刘 佳    时间: 2012-10-13 16:28
本帖最后由 刘 佳 于 2012-10-13 16:29 编辑

接口中可以定义变量和方法,但是定义在抽象类中的变量是常量,因为前面有public static final关键字。定义在抽象类中的方法是抽象方法,需要在子类中实例化。
作者: 刘 佳    时间: 2012-10-13 16:31
抽象类是指在一个类中有一个抽象方法,那么这个类就是抽象类。抽象类中可以有非抽象方法。子类继承它只需且必须复写该类中的抽象方法。抽象方法是必须复写滴。
作者: 陈家明    时间: 2012-10-13 20:48
在接口中定义变量会自动生成,public static final 常量。
定义方法会自动生成抽象方法,接口中的成员都是public,
接口不能创建对象,因为有抽象方法,子类对接口的抽象方法全部覆盖后,子类才能实例化。




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