将一个类abstract的作用是什么呢?

meiqianmeifang 2009-02-16 10:33:48
为什么要abstract一个类呢?
...全文
992 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
world_all 2009-02-17
  • 打赏
  • 举报
回复
abstract 是事物的概念.

interface 是事物的功能.
简单的牛牛 2009-02-17
  • 打赏
  • 举报
回复
figozhjh总结的真经典..哈哈
junxiao_1988 2009-02-16
  • 打赏
  • 举报
回复
5楼说得很全面了
Nationalist 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 figozhjh 的回复:]
抽象类(abstract class )
1.只要有个方法是abstract ,那么该类是abstract 类;
2.abstract 方法在子类中必须有实现;在abstract 类中的abstract 方法只有声明而不能有方法体;
3.abstract 方法在子类中被实现时要加上override关键字;
4.abstract 类方法中非abstract 方法在子类中重写时加上new关键字;

接口( interface)
1.只有方法声明,实现类来实现方法;
2.成员变量是static和…
[/Quote]
正解
figozhjh 2009-02-16
  • 打赏
  • 举报
回复
抽象类(abstract class )
1.只要有个方法是abstract ,那么该类是abstract 类;
2.abstract 方法在子类中必须有实现;在abstract 类中的abstract 方法只有声明而不能有方法体;
3.abstract 方法在子类中被实现时要加上override关键字;
4.abstract 类方法中非abstract 方法在子类中重写时加上new关键字;

接口( interface)
1.只有方法声明,实现类来实现方法;
2.成员变量是static和final的;

接口和抽象类(abstract class and interface) 不同点:
1.继承一个抽象类,继承多个接口
2.类里面只要有一个抽象方法,该类就是抽象类;
3.抽象类可以是抽象方法和普通方法,接口中的方法都是声明(只有方法名,没有内部实现),必须被继承者全部实现
gesanri 2009-02-16
  • 打赏
  • 举报
回复
说简单点,抽象类可以提高代码的重用性,结构清楚,维护起来也方便
说复杂点,自己看 http://zhidao.baidu.com/question/79867705.html
zhanghua4109 2009-02-16
  • 打赏
  • 举报
回复
1。防止抽象类被实例化;
2。强制子类重载抽象方法;
临远 2009-02-16
  • 打赏
  • 举报
回复
主要为了抽离可复用的代码
mengweilil 2009-02-16
  • 打赏
  • 举报
回复
抽象

狂浪吻血 2009-02-16
  • 打赏
  • 举报
回复
抽象类可以提高代码的重用性,结构清楚,维护起来也方便
haha017 2009-02-16
  • 打赏
  • 举报
回复
一个类前面加abstract 就是抽象类 ,该类不能被实例化,
通常作为父类,继承他的子类必须重写父类中的抽象方法;
主要起到了规范的作用。
Wbl314 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 newerhang 的回复:]
用abstract修饰的类不能用来实例化,而且继承它就必须实现它的所有抽象方法
也就是说,抽象类new不出来
[/Quote]
其实也可以不完全实现
子类也声明为抽象类就可以
newerhang 2009-02-16
  • 打赏
  • 举报
回复
用abstract修饰的类不能用来实例化,而且继承它就必须实现它的所有抽象方法
也就是说,抽象类new不出来
Mr_Su 2009-02-16
  • 打赏
  • 举报
回复
抽象来用来定义一组抽象的概念, 比如: 动物 我们可以想象有 "吃" 这个行为. 你可以定义一个抽象类叫动物 它有一个方法叫 '吃', 但这个吃只是一个抽象的概念,并没有实质的东西,就是没有说明宣究竟如何吃,所在我们应该为动物定义一个抽象的吃的方法(方法内部没有任何代码)? 当我们具体到某一种动物时,我们就可以给出具体的行为, 现在我们要定义一个类 "狗" 狗 extends 动物, 这时你需要为狗的"吃"写个方法 。。。


应该说扩展性更强,和更体现面向对象!
如果还有猫,鸡,鸭,鱼。。。。只要继承了动物类(他们都属于动物) ,那么他肯定都会有“吃”这个方法,只是每个的动物“吃”的实现方式不一样。

虽然也可以像你说的那样,单独定义狗这个类和“吃”的方法,如果还有猫,鸡,鸭,鱼。。。。要扩展起来会很麻烦,特别随着程序的扩大,你自己的思路都会理不清。 现在这样写,只要是动物(继承了动物)就会有“吃”这个方法
yangkaixin1226 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xyz20003 的回复:]
主要为了抽离可复用的代码
[/Quote]
太简洁实在了,顶2楼的
mike_24 2009-02-16
  • 打赏
  • 举报
回复
abstract类是抽象类,即不能实例化对象。作用提供其他类的复用性和分类管理。
猿敲月下码 2009-02-16
  • 打赏
  • 举报
回复
如果碰到了所有子类中的方法都要覆盖父类中的方法时,父类最好申明为抽象的
guanly_025 2009-02-16
  • 打赏
  • 举报
回复
复用性好些,还可以扩展
ZiSheng 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 figozhjh 的回复:]
抽象类(abstract class )
1.只要有个方法是abstract ,那么该类是abstract 类;
2.abstract 方法在子类中必须有实现;在abstract 类中的abstract 方法只有声明而不能有方法体;
如果没有实现那么子类也是抽象类
3.abstract 方法在子类中被实现时要加上override关键字;
4.abstract 类方法中非abstract 方法在子类中重写时加上new关键字;

接口( interface)
1.只有方法声明,实现类来实现方法;
2.成员变量是static和…
[/Quote]
一个抽象类里边的所有方法都可以实现,可以没有抽象方法

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧