Java 子类如何调用父类之父类的方法

Java 子类如何调用父类之父类的方法,第1张

public class $ {

    public static void main(String[] args) {

        A a1 = new A();

        a1test(100);

        A a2 = new B();

        a2test(100);

        A a3 = new C();

        a3test(100);

    }

}

class A {

    public void test(int i) {

        Systemoutprintln("A");

    }

}

class B extends A {

    public void test(int i) {

        Systemoutprintln("B");

    }

}

class C extends B {

    public void test(int i) {

        // supertest(i);

        Systemoutprintln("C");

    }

}

A

B

C

main方法中是可以的,父类是不能调用子类

的方法的。跟你说底层实现你也不懂,从面向对象上来说吧。

父类先于子类存在,子类从父类中生出来,所以子类知道父类,可以调用父类方法。但父类不知道子类,子类可以任意的出生,只要你愿意,所以父类无法调用子类,他不知他会有这样的子类,也不知有多少个子类,但子类的父类是唯一的。

简单点就是在java中父类是不能调用子类的方法的。

public class  TestSuper

{

public static void main(String[] args) 

{

Systemoutprintln("\n\t\t==========如何重写set/get 和调用父级的set/get方法==========\n");

init();

}//初始化!

private static void init()

{

Z z=new Z();

//调用父类方法!

zf();

//调用子类方法!

zget();

zset();

zget();

}

}

//父类!

class F

{

int a=1;

void get()

{

Systemoutprintln("父类获取方法:a=>"+a);

}

void set()

{

a=10;

Systemoutprintln("父类修改方法");

}

}

//子类!

class Z extends F

{

//重写!

void get()

{

Systemoutprintln("子类获取方法:a=>"+a);

}

void set()

{

a=100;

Systemoutprintln("子类--------修改方法");

}

//调用父类,这也可以写在重写方法里面,这里为了区分就写在下面,醒目一点!

void f()

{

superget();

superset();

superget();

}

}

由于动态绑定,所以调用的是子类的A方法。如果一定要调用父类的,有这几个办法

1、:看看这个方法能否是static的?如果可以,改成static

2、 修改Child类,增加一个新方法B,B的实现为 superA()。外部调用的时候改为

Child f = new Child(); fB();

3、使用反射

以上就是关于Java 子类如何调用父类之父类的方法全部的内容,包括:Java 子类如何调用父类之父类的方法、java 怎么在子类中调用父类方法、如何重写set/get 和调用父级的set/get方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10194254.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存