日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java父类调用子类方法_Java 中父类怎么调用子类的方法?

發(fā)布時(shí)間:2025/3/12 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java父类调用子类方法_Java 中父类怎么调用子类的方法? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

父類能調(diào)用子類的方法嗎?

答:能。

怎么做?

● 把子類傳遞到父類的有參構(gòu)造中,然后調(diào)用。

● 使用反射的方式調(diào)用,你使用了反射還有誰(shuí)不能調(diào)用的?!

● 父類調(diào)用子類的靜態(tài)方法。

案例展示:

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:使用反射的方式調(diào)用子類方法

try {

Class cls=Class.forName("com.ywq.Son");

Son son=(Son) cls.newInstance();

son.fun2();

} catch (Exception e) {

e.printStackTrace();

}

}

public void fun1(){

//方法1:把子類傳遞到父類的有參構(gòu)造函數(shù)中,然后調(diào)用。

System.out.println("我是父類的方法");

son.fun2();

//方法2:父類調(diào)用子類的靜態(tài)方法。

Son.fun3();

}

}

class Son extends Father{

public static void fun3(){

System.out.println("我是子類的靜態(tài)方法");

}

public void fun2(){

System.out.println("我是子類的方法");

}

}

這三種都是父類直接調(diào)用子類的方法,

好用不?好用!

解決問(wèn)題了嗎?解決了!

項(xiàng)目中允許使用不?不允許!

我就一直沒(méi)有搞懂為什么要用父類調(diào)用子類的方法。如果一定要調(diào)用子類,那為什么要繼承它呢?搞不懂。其實(shí)這個(gè)問(wèn)題可以換個(gè)角度去理解,父類建立框架,子類在重寫了父類部分的方法后,再調(diào)用從父類繼承的方法,產(chǎn)生不同的結(jié)果(而這正是模板方法模式)。這是不是也可以理解為父類調(diào)用了子類的方法呢?你修改了子類,影響了父類行為的結(jié)果,曲線救國(guó)的方式實(shí)現(xiàn)了父類依賴子類的場(chǎng)景,模板方法模式就是這種效果。

---------------------

作者:溫柔狠角色

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

總結(jié)

以上是生活随笔為你收集整理的java父类调用子类方法_Java 中父类怎么调用子类的方法?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。