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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

代码如下:
//定义抽象类Animal
abstract class Animal {
abstract void shout();
}
//定义Dog类继承抽象类Animal
class Dog extends Animal{
void shout() {
  System.out.println("汪汪");
}
}
//定义测试类
class ChouXiang {
public static void main(String[] args) {
  Dog dog = new Dog();
  dog.shout();
}
}

26 个回复

倒序浏览
既然子类了需要一一实现父类里的抽象方法,那么还有为何还要在父类里加抽象方法呢?
这不是多此一举么?
回复 使用道具 举报
很是困扰,搞不懂,还请诸位为在下解惑一二
回复 使用道具 举报
声明功能用
回复 使用道具 举报

为什么要声明功能?
回复 使用道具 举报
父类中的抽象方法是从子类中抽取多类事物的共性。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式,就好比在学校,初级班的学生在上课,高级班的学生也在上课,虽然他们都是在上课但是他们所学习的内容不用,但是都是在学习,将学习编成抽象类,这样可以减少代码量,也能扩展功能。
回复 使用道具 举报
云鱼 中级黑马 2015-12-25 21:43:41
7#
就像黑社会一样,入会必须要统一的纹身,同一类,
回复 使用道具 举报
抽象类是为了更好的重用代码,规范编程。
假如每个类都写一个方法,而且实现方法是相同的, 参数也是相同的,那么需要的代码量就很大了.
如果有了抽象类,就可以把他们归为一起. 这样节省了大量的代码量.
回复 使用道具 举报
凯撒 中级黑马 2015-12-28 20:16:44
9#
KTdain 发表于 2015-12-25 20:23
父类中的抽象方法是从子类中抽取多类事物的共性。构造出一个固定的一组行为的抽象描述,但是这组行为却能够 ...

有减少代码量吗?初中生在实现学习的过程得写初中生学习的方法具体代码块,高中生在实现学习的时候也得再写高中生学习的方法具体代码块,并没有减少代码量啊?
回复 使用道具 举报
凯撒 中级黑马 2015-12-28 20:18:08
10#
云鱼 发表于 2015-12-25 21:43
就像黑社会一样,入会必须要统一的纹身,同一类,

你这个回答吊,拜服
回复 使用道具 举报
凯撒 中级黑马 2015-12-28 20:27:51
11#
隔壁老猫 发表于 2015-12-25 23:14
抽象类是为了更好的重用代码,规范编程。
假如每个类都写一个方法,而且实现方法是相同的, 参数也是相同的 ...

规范编程我是认同的,不同人写相同的方法起名可能不同,这样在比较两个相同的方法时可能有点麻烦,而抽象的时候让其有一个固定的名称,这样能省掉很多麻烦。

但是,还是想不到抽象类怎么会节省代码量。每个对象的不同的吃饭行为,或者说睡觉行为,不都还得在这个对象的所在子类里完整的写一遍代码么?父类的抽象方法并没有节省代码量啊?
回复 使用道具 举报
............................
回复 使用道具 举报
凯撒 发表于 2015-12-28 20:27
规范编程我是认同的,不同人写相同的方法起名可能不同,这样在比较两个相同的方法时可能有点麻烦,而抽象 ...

面相对象的思想, 从继承的好处来考虑
其实不能说抽象类有什么用, 没有抽象类的话一般类也能满足需求,但是有些方法父类确实没有必要去写, 比如吃饭的行为, 你并不知道子类怎么吃, 就算继承下来子类也要重写这个方法, 所以干脆父类抽象这个方法, 让子类想怎么吃怎么吃.
回复 使用道具 举报
行为都有不确定因素,所以要定义一个抽象类
回复 使用道具 举报
我是这么想的,程序员A,定义一套规则在,他并不实现它,具体的让程序员B去实现,听起来好像是接口,可是接口没有成员变量,只有常量,没有构造方法,有一定的适用限制。感觉是时间先后问题
回复 使用道具 举报
好问题 我得想想
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 01:00:11
17#
隔壁老猫 发表于 2015-12-28 22:55
面相对象的思想, 从继承的好处来考虑
其实不能说抽象类有什么用, 没有抽象类的话一般类也能满足需求,但是 ...

那么为什么非要把这个吃饭的方法抽象到父类里呢?除了能够规范一下代码,让人能够方便阅读,还有其他原因么?
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 01:01:47
18#
black习 发表于 2015-12-28 23:43
我是这么想的,程序员A,定义一套规则在,他并不实现它,具体的让程序员B去实现,听起来好像是接口,可是接 ...

时间先后问题?还是实现先后问题?
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 01:03:10
19#
路路路路灯亮了 发表于 2015-12-28 23:04
行为都有不确定因素,所以要定义一个抽象类

你说的是抽象类还是接口?
回复 使用道具 举报
666666666666
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马