关于java抽象类的问题

这两种写的方法为什么抽象类更好呢?输出的结果不都一样么。
渣新刚学到这块现在一脸懵逼啊!求大神们指点下!

Animal dog = new Dog();
Animal cat = new Cat();
dog.eat();
cat.eat();


把main改成这个你就知道了

追问

这个是向下转换么?但是输出结果还是一样的啊。我想知道用抽象类的好处具体是啥

追答

抽象就是为了统一化处理, 同时在大型项目里面便于大家分工, 比如一个人写了下面的程序:

class Feeder{
public void littleFeed(Animal animal) {
animal.eat();
animal.eat();
}
public void bigFeed(Animal animal) {
animal.eat();
animal.eat();
animal.eat();
animal.eat();
}
};

将来再增加什么马, 牛, 鸡什么的, 这个人的代码就可以不用改。

追问

额,道理我都懂···但是这样的话只建一个父类不也可以了,为啥非得是抽象类···比如说:我用父类建立一个饲养的方法(是空方法)然后在用一个子类来重写这个方法。这个跟用一个抽象类写一个抽象方法,然后用一个子类来重写不都一样么。我是这个意思

追答

软件设计的方法比较灵活的, 不要拘泥于某一种, 你慢慢学吧, 以后就懂了。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜