好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java中父类怎么调用子类的方法

父类能调用子类的方法吗?

答:能。

怎么做?

把子类传递到父类的有参构造中,然后调用。 使用反射的方式调用,你使用了反射还有谁不能调用的?! 父类调用子类的静态方法。

案例展示:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

package com.ywq;

 

public class test2{

     public static void main(string[] args)

     {

         son son = new son();

         father father= new father(son);

         father.fun1();

         father.fun4();

     }  

}

class father{

     public son son;

     public father(son son){    

         this .son=son;

     }  

     public father() {

        

     }

 

     public void fun4(){

         //方法3:使用反射的方式调用子类方法

         try {

             class cls= class .forname( "com.ywq.son" );

             son son=(son) cls.newinstance();

             son.fun2();

         } catch (exception e) {

        

             e.printstacktrace();

         }

     }

     public void fun1(){

         //方法1:把子类传递到父类的有参构造函数中,然后调用。

         system.out.println( "我是父类的方法" );

         son.fun2();

        

         //方法2:父类调用子类的静态方法。

         son.fun3();

     }      

}

 

class son extends father{

    

     public static void fun3(){

         system.out.println( "我是子类的静态方法" );

     }

     public void fun2(){

         system.out.println( "我是子类的方法" );

        

     }

    

}

这三种都是父类直接调用子类的方法,

好用不?好用!

解决问题了吗?解决了!

项目中允许使用不?不允许!

我就一直没有搞懂为什么要用父类调用子类的方法。如果一定要调用子类,那为什么要继承它呢?搞不懂。其实这个问题可以换个角度去理解,父类建立框架,子类在重写了父类部分的方法后,再调用从父类继承的方法,产生不同的结果(而这正是模板方法模式)。这是不是也可以理解为父类调用了子类的方法呢?你修改了子类,影响了父类行为的结果,曲线救国的方式实现了父类依赖子类的场景,模板方法模式就是这种效果。

以上所述是小编给大家介绍的java父类调用子类的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

原文链接:https://blog.csdn.net/qq_25827845/article/details/52916513

查看更多关于Java中父类怎么调用子类的方法的详细内容...

  阅读:17次