多态,可以调用子类重写父类的方法,那可以调用子类特有的方法吗?

如题所述

父类引用指向子类对象
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果有,再去调用子类的同名方法;如果没有,则编译错误。
// 如果父类没有该方法,是无法指向子类的方法的
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-12-01
多态不可以调用子类特有方法。
第2个回答  2018-03-11
如果你进行强制转型的话就可以调用子类特有对象了
第3个回答  2018-01-09
在java和c#中,无论是接口的多态还是抽象类,在进行多态调用的时候,都只能调用父类,或者接口里面已经存在的方法或者属性,子类或者实现类特有的方法不能通过多态进行调用
第4个回答  2016-09-10
在子类的实例中,是这样的。。。。。。。。。。。。。。。。。

java父类对象可以调用子类独有的方法吗?
可以的,要子类重写父类方法 package disruptor.demo2;\/** * Created by hcq on 2017\/6\/1. *\/public abstract class Father { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void...

java的多态怎么实现?
将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换。此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不是父类的方法此时通过父类引用变量无法调用子类特有的方法。向下转型 Student stu = (Student)person;将一个指向子类对象的引用赋给一个子类的引用,成为向下转型,...

java中 抽象类不可以实现方法吗
抽象类可以实现方法,但是不可以实例化。举例:public abstract class A{ public void a(){\/\/实现的方法a } public abstract void b();\/\/抽象方法} 补充抽象类特点:1. 抽象方法 abstract void f(); 抽象方法不能包含有任何方法的BODY 。2. 如果一个类包含1个或者多个抽象方法, 则该...

java中为什么说子类对象即是父类对象?求详解!!!
\/\/当然还可以有其他的实现 然后,我们就可以看到多态所展示的特性了:Parent pa = new Child_A();pa.simpleCall()则显然是调用Child_A的方法;Parent pa = new Child_B();pa.simpleCall()则是在调用Child_B的方法。所以,我们对于抽象的父类或者接口给出了我们的具体实现后,pa 可以完全不用管...

子类可以继承父类的公共方法
4、多态性:子类可以重写(覆盖)继承的父类方法,以实现自己特定的逻辑。这样可以在不改变方法名的前提下,根据具体的子类对象调用不同的方法实现。这种多态性提高了代码的灵活性和可扩展性。在子类继承父类的过程中注意事项 1、访问权限:子类只能继承父类中的公共方法(public),而不能继承私有方法(...

java多态中,父类不能引用子类的属性
而属性并不能被复写,只是重名了。对此我们可以验证一下:在父类添加一个fun(){System.out.println("父类方法");} 在子类复写方法fun(){System.out.println("子类方法");} 然后在主方法中:Son p2 = new Son();p2.run(); \/\/子类直接调用fun方法 ((Person )p2).run(); \/\/转成...

Java上转型变量调用子类重写的方法时,方法中调用的属性是被隐藏的还是...
在 Java 中,如果一个子类重写了父类的方法,则可以使用父类的引用变量调用子类的重写方法。这种调用方法的机制被称为动态绑定,它允许在运行时根据对象的实际类型来调用方法。你可以使用父类的引用变量来引用子类的对象,例如:Person person = new Student();在这个例子中,person 是一个 Person 类型...

java中多态是什么意思?
产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。C++中,实现多态有以下方法:虚函数,抽象类,覆盖,模板(重载和多态无关)。OC中的多态:不同对象对同一消息的不同响应.子类可以重写父类的方法 多态就是允许方法重名 参数或返回值可以是父类型传入或返回。

JAVA中父类里的private方法能否被重写的问题,请看下面图片!!!_百度...
1、这种结果是正确的。2、具体原因如下:一,第一种情况输出“父类”,是由于子类中并没有重写fun方法,而且父类的print方为private为不可重写,虽然你的子类中看上去重写了,其实是两个无关print方法,只是方法名而已,在多态调用的时候,只会直接找父类的print方法,故导致你在子类Student对象中调用...

java 继承时,子类存在和父类相同的属性和方法会怎么样?
则子类的属性和方法会覆盖父类的属性和方法。如果子类覆盖了父类的方法,那么在调用该方法时,实际上会调用子类的方法而不是父类的方法。这就是所谓的方法重写(overriding)。当子类存在和父类相同的属性时,子类可以使用 super 关键字调用父类的属性。这种情况下,子类的属性会覆盖父类的属性。

相似回答