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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王虎 中级黑马   /  2012-10-13 11:28  /  7839 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果是抽象类又是咋样呢?

评分

参与人数 1黑马币 +6 收起 理由
韩军博 + 6 神马都是浮云

查看全部评分

6 个回复

倒序浏览
在接口里当然可以定义变量和方法,只不过其中的变量都会自动是static和final的,而方法都没有方法体,就是说是抽象的,只是省略了abstract关键字
在抽象类中也可以啊,只是没有接口中限制的那么严格。
可以这样理解,接口就是抽象类的延伸,是为了解决“多继承”的问题,只不过名字叫“多实现”而已。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 黑马王建伟 于 2012-10-13 11:48 编辑

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

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
抽象类不能生成对象,一个类中可以有一个或者多个抽象函数,这个类必须被声明为抽象类,抽象类只能被继承,继承抽象类之后就必须override这个抽象类里面的抽象函数。使用抽象类的作用就是使设计者忽略细节,将重心放在整个系统的设计上,抽象类出了提供重要的需要子类去实现的抽象方法外,也提供子类可以继承的变量和非抽象方法,如果某个问题需要使用继承才能更好的解决,比如子类除了需要实现父类的抽象方法,还需要从父类继承一些变量或者继承一些重要的非抽象方法,就考虑用抽象类。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 刘 佳 于 2012-10-13 16:29 编辑

接口中可以定义变量和方法,但是定义在抽象类中的变量是常量,因为前面有public static final关键字。定义在抽象类中的方法是抽象方法,需要在子类中实例化。
回复 使用道具 举报
抽象类是指在一个类中有一个抽象方法,那么这个类就是抽象类。抽象类中可以有非抽象方法。子类继承它只需且必须复写该类中的抽象方法。抽象方法是必须复写滴。
回复 使用道具 举报
在接口中定义变量会自动生成,public static final 常量。
定义方法会自动生成抽象方法,接口中的成员都是public,
接口不能创建对象,因为有抽象方法,子类对接口的抽象方法全部覆盖后,子类才能实例化。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马