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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李哲 中级黑马   /  2012-3-27 09:40  /  5433 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类中抽象方法没有方法主体的原因?

8 个回复

倒序浏览
它是抽取共性方法的结果,是抽象的没有具体的实现方法。
比如说我们吃饭每一个人怎么吃都不相同,我们就抽取吃饭作为一个抽象方法,
就是每一个都要有的方法,具体怎么吃就要我们每一个人就是实例对象去实现。
回复 使用道具 举报
抽象方法只是规定了一种行为,但是具体怎么做,这个是由子类去实现的

如果这些子类在做这种行为的时候,有些地方是一样的,那么也可以不用直接抽象,这会造成代码重复,这时候使用非抽象的实体方法来定义共有的行为,子类只需要实现那些不一样的部分就可以
回复 使用道具 举报
因为在面向对象的编程的思想中,任何事物都可以看做是一个类。例如:每个动物都需要睡觉(sleep),而不同的动物有不同的睡觉方法.如,蝙蝠是倒挂在树上睡,小狗是爬着睡,蛇是盘着睡……等等
而他们是在做同一件事,睡觉(sleep),子类继承父类后,子类必须重写这个方法,由子类负责这些抽象方法的实现细节。
回复 使用道具 举报
当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。
回复 使用道具 举报
拥有抽象方法的类就是抽象类,抽象类不能被实例化只能被继承,那么其内部的方法必须被子类重写,有无方法实体都没有意义。
抽象类的出现是为了将抽象复用及实现复用剥离开来,实现多特。
回复 使用道具 举报
抽象方法为的是重用性,比如吃:每个人想吃的东西不同,吃馒头的人实现抽象类的eat抽象方法,吃大米饭的人实现抽象类中的eat抽象方法。如果可以有方法体的话,就失去了抽象类的意义了。
回复 使用道具 举报
抽象方法只是定义了一种标准,但是具体怎么做,这个是由子类去实现的
如果这些子类在做这种行为的时候,有些地方是一样的,那么也可以不用直接抽象,这会造成代码重复,这时候使用非抽象的实体方法来定义共有的行为,子类只需要实现那些不一样的部分就可以。抽象方法为的是实现代码的重用性。
回复 使用道具 举报
抽象类中抽象方法没有方法主体的原因?
抽象类是不能实例对象的,只能new他的子类,他的子类复写了抽象方法,用他的时候用的是他子类的方法。所以即使抽象方法中写上代码,也是用不到的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马