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-29 01:00
那么为什么非要把这个吃饭的方法抽象到父类里呢?除了能够规范一下代码,让人能够方便阅读,还有其他原因 ...

这就要看继承的好处了
1,提高代码复用性.
2.提高了代码的维护性.
3.让类与类产生了一个关系(多态的前提).
回复 使用道具 举报
1158147908 来自手机 中级黑马 2015-12-30 07:23:18
26#
增加程序的维护性呀,还有可扩展性等
回复 使用道具 举报
OliverLC 来自手机 中级黑马 2015-12-30 02:21:04
25#
凯撒 发表于 2015-12-29 19:53
你的智商堪忧啊,哎,不对,是你的智商很高大上啊

菊部累不累?
回复 使用道具 举报
6666666666666666
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 19:53:05
23#
OliverLC 发表于 2015-12-29 01:38
抽象类的意义在于更客观的体现每个子类所具有的特点,子类确实可以复写父类,但是给它加一个抽象的概念岂不 ...

你的智商堪忧啊,哎,不对,是你的智商很高大上啊
回复 使用道具 举报
OliverLC 来自手机 中级黑马 2015-12-29 01:38:24
22#
抽象类的意义在于更客观的体现每个子类所具有的特点,子类确实可以复写父类,但是给它加一个抽象的概念岂不是更符合人的思想?更能让java语言看起来更高大上?人有语言,人可以通过语言来传达不同层次的表达意境,计算机语言同样拥有这样的能力!所以不要再认为java语言里的某些东西是无意义的了,如果无意义,当初去开发它又何必呢,你说是不是哈哈哈哈哈
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 01:21:10
21#

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

你说的是抽象类还是接口?
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 01:01:47
18#
black习 发表于 2015-12-28 23:43
我是这么想的,程序员A,定义一套规则在,他并不实现它,具体的让程序员B去实现,听起来好像是接口,可是接 ...

时间先后问题?还是实现先后问题?
回复 使用道具 举报
凯撒 中级黑马 2015-12-29 01:00:11
17#
隔壁老猫 发表于 2015-12-28 22:55
面相对象的思想, 从继承的好处来考虑
其实不能说抽象类有什么用, 没有抽象类的话一般类也能满足需求,但是 ...

那么为什么非要把这个吃饭的方法抽象到父类里呢?除了能够规范一下代码,让人能够方便阅读,还有其他原因么?
回复 使用道具 举报
好问题 我得想想
回复 使用道具 举报
我是这么想的,程序员A,定义一套规则在,他并不实现它,具体的让程序员B去实现,听起来好像是接口,可是接口没有成员变量,只有常量,没有构造方法,有一定的适用限制。感觉是时间先后问题
回复 使用道具 举报
行为都有不确定因素,所以要定义一个抽象类
回复 使用道具 举报
凯撒 发表于 2015-12-28 20:27
规范编程我是认同的,不同人写相同的方法起名可能不同,这样在比较两个相同的方法时可能有点麻烦,而抽象 ...

面相对象的思想, 从继承的好处来考虑
其实不能说抽象类有什么用, 没有抽象类的话一般类也能满足需求,但是有些方法父类确实没有必要去写, 比如吃饭的行为, 你并不知道子类怎么吃, 就算继承下来子类也要重写这个方法, 所以干脆父类抽象这个方法, 让子类想怎么吃怎么吃.
回复 使用道具 举报
............................
回复 使用道具 举报
凯撒 中级黑马 2015-12-28 20:27:51
11#
隔壁老猫 发表于 2015-12-25 23:14
抽象类是为了更好的重用代码,规范编程。
假如每个类都写一个方法,而且实现方法是相同的, 参数也是相同的 ...

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

但是,还是想不到抽象类怎么会节省代码量。每个对象的不同的吃饭行为,或者说睡觉行为,不都还得在这个对象的所在子类里完整的写一遍代码么?父类的抽象方法并没有节省代码量啊?
回复 使用道具 举报
凯撒 中级黑马 2015-12-28 20:18:08
10#
云鱼 发表于 2015-12-25 21:43
就像黑社会一样,入会必须要统一的纹身,同一类,

你这个回答吊,拜服
回复 使用道具 举报
凯撒 中级黑马 2015-12-28 20:16:44
9#
KTdain 发表于 2015-12-25 20:23
父类中的抽象方法是从子类中抽取多类事物的共性。构造出一个固定的一组行为的抽象描述,但是这组行为却能够 ...

有减少代码量吗?初中生在实现学习的过程得写初中生学习的方法具体代码块,高中生在实现学习的时候也得再写高中生学习的方法具体代码块,并没有减少代码量啊?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马