專注Java教育13年 全國咨詢/投訴熱線:400-8080-105
                首頁 hot資訊 子類重寫父類的方法

                子類重寫父類的方法

                更新時間:2022-08-12 10:17:41 來源:動力節點 瀏覽30次

                子類重寫父類的方法有哪些?動力節點小編來告訴大家。

                方法名一致

                //這是父類
                public class SuperClass {
                    public void test(){
                        System.out.println("我是父類的方法");
                    }
                }
                //這是子類
                public class SubClass extends SuperClass{
                    //重寫了父類的方法
                    public void test(){
                        System.out.println("我是子類的方法");
                    }
                }
                //這是測試類
                public class TestMain {
                    public static void main(String[] args) {
                        SubClass subClass = new SubClass();
                        subClass.test();
                    }
                }

                輸出結果:

                我是子類的方法

                總結:子類要重寫父類的方法,子類方法名必須與父類一致

                子類的訪問權限要大于或等于父類

                //這是父類
                public class SuperClass {
                    void test1(){
                        System.out.println("我是父類的方法1");
                    }
                    void test2(){
                        System.out.println("我是父類的方法2");
                    }
                    protected void test3(){
                        System.out.println("我是父類的方法3");
                    }
                }
                //這是子類
                public class SubClass extends SuperClass{
                    //重寫了父類的方法1(訪問權限一致,都是缺省)
                    void test1(){
                        System.out.println("我是子類的方法1");
                    }
                    //重寫了父類的方法2(訪問權限大于父類的 protected > 缺省)
                    protected void test2(){
                        System.out.println("我是子類的方法2");
                    }
                    //重寫了父類的方法3(訪問權限大于父類的 public > protected)
                    public void test3(){
                        System.out.println("我是子類的方法3");
                    }
                }
                //這是測試類
                public class TestMain {
                    public static void main(String[] args) {
                        SubClass subClass = new SubClass();
                        subClass.test1();
                        subClass.test2();
                        subClass.test3();
                    }
                }

                輸出結果:

                我是子類的方法1
                我是子類的方法2
                我是子類的方法3

                總結:子類要重寫父類的方法,子類方法的權限修飾符訪問權限必須大于或者等于父類方法的權限修飾符訪問范圍

                參數個數、類型、順序必須一致

                //這是父類
                public class SuperClass {
                    public void test(int i,String s){
                        System.out.println("我是父類的方法"+i);
                        System.out.println("我是父類的方法"+s);
                    }
                }
                //這是子類
                public class SubClass extends SuperClass{
                    //沒有重寫父類的方法
                    public void test(){
                        System.out.println("我是子類的方法");
                    }
                    //沒有重寫父類的方法
                    public void test(int i){
                        System.out.println("我是子類的方法");
                    }
                    //沒有重寫父類的方法
                    public void test(String s){
                        System.out.println("我是子類的方法");
                    }
                    //沒有重寫父類的方法
                    public void test(String s,int i){
                        System.out.println("我是子類的方法");
                    }
                    //重寫了父類的方法
                    public void test(int i,String s){
                        System.out.println("我是子類的方法");
                    }
                }
                //這是測試類
                public class TestMain {
                    public static void main(String[] args) {
                        SubClass subClass = new SubClass();
                        subClass.test(0,"s");
                    }
                }

                輸出結果:

                我是子類的方法

                總結:子類要重寫父類的方法,子類方法的參數個數、參數類型、參數順序必須與父類方法的一致

                返回值一致或者是父類的子類(實現類)

                //這是父類
                public class SuperClass {
                    public Map test1(){
                        Map map = new HashMap();
                        System.out.println("我是父類的方法1");
                        return map;
                    }
                    public List test2(){
                        List list = new ArrayList();
                        System.out.println("我是父類的方法2");
                        return list;
                    }
                }
                //這是子類
                public class SubClass extends SuperClass{
                    //重寫了父類的方法(返回值一致)
                    public Map test1(){
                        Map map = new HashMap();
                        System.out.println("我是子類的方法1");
                        return map;
                    }
                    //重寫了父類的方法(返回值是父類的實現類)
                    public ArrayList test2(){
                        ArrayList arrayList = new ArrayList();
                        System.out.println("我是子類的方法2");
                        return arrayList;
                    }
                }
                //這是測試類
                public class TestMain {
                    public static void main(String[] args) {
                        SubClass subClass = new SubClass();
                        subClass.test1();
                        subClass.test2();
                    }
                }

                輸出結果:

                我是子類的方法1
                我是子類的方法2

                總結:子類要重寫父類的方法,子類方法的返回值必須與父類的一致,或者子類方法的返回值是父類方法返回值的子類或者實現類,如果返回值不滿足,則編譯錯誤

                注意:

                1.父類中 final 修飾的方法不可以被子類重寫

                2.父類中 private 修飾的方法,子類訪問不到,故也不可以重寫

                3.如果父類是static方法而子類是實例方法,或者相反都會報錯。如果父類和子類都是static方法,那么子類隱藏父類的方法,而不是重寫父類方法。

                提交申請后,顧問老師會電話與您溝通安排學習

                免費課程推薦 >>
                技術文檔推薦 >>
                返回頂部
                办公室激情娇喘嗯啊视频软件