java 子类继承父类 可以直接调用父类属性和方法 为什么还要用多态?

java 子类继承父类 可以直接调用父类属性和方法 为什么还要用多态
难道只是为了节省声明变量?
class public Person{//定义一个父类 里面有个吃饭方法
public void eat(){
System.out.println("吃饭");
}
}

class public Student extends person{//定义一个学生类 因为都要吃饭 所以我不打算重写父类吃饭的功能
'''''''''
}
class public Test{//测试类
''''''''' main(){
Student stu = new Student();
stu.eat();//创建子类对象并调用父类吃饭方法

Person per = new Studnet(); //创建父类引用指向子类对象 并调用父类吃饭方法
per.eat();
}
}
请问各位大佬,这两种的区别是什么?不用多态,一样可以做到

举个例子:
父类:A
子类:A1
子类:A2
父类中定义了一个方法method:,类A1和类A2有不同的实现,这是代码中定义一个类A,那么可以直接调用A的a方法即可,不用关心用A1还是A2去实例化的这个A对象,这就是多态的特性
A a;
a = new A1();或a = new A2();
a.method();只要改变这个a的实例化方式,就能执行不同对象的方法。追问

意思就是说在后面的代码维护中,要扩展新的功能,只需改变A父类的方法功能。然后让他的子类对象去调用它,就可以了。如果我这样理解,是对的。既然子类继承了父类,那么在子类当中重写父类功能。也能达到相同的结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-16
多态的含义就是对相同的方法,实现不同。
你说的这种情况比较特殊,比如子类要扩充功能,那么父类的那些方法覆盖掉,而且子类也可以有自己的新成员,那么继承过来的东西就不够用了。本回答被网友采纳
第2个回答  2021-09-15
一般是可以的,但如果父类的方法修饰符是特定的就不能被继承。作用说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。域 当前类 同一package 子孙类 其他package public Y Y Y Y protected Y Y Y N friendly Y Y N N private Y N N N Y是可以被继承和使用,N是不能,看看你定义的父类方法的修饰符吧!追问

您好!我问想明白的是多态,不是继承啊。

第3个回答  2021-09-15
如果你把另一个特性-封装,也带过来理解,会不会好理解一点?
用你这个例子说明一下。
如果我要封装起来,一个人他要吃饭,但是这个不同人有不同的吃饭,学生天天吃饭堂学生餐,土豪天天大鱼大肉变着花样的吃是吧,那么我需要封装起来,比如人中午到点吃饭(12点-13点),大家都要吃饭的嘛,ok,调用person#eat,置于谁在吃,怎么吃,我不管,谁继承的person谁去实现,爱怎么吃这么吃。
这个例子里面,以后你想更改别的人去吃饭,都不需要在改动,不管你是小学生,大学生,打工人,都可以用,这个是多态的一个应用之一。
相似回答