程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java-成員變量的屬性與成員函數的覆蓋,java-成員變量函數

java-成員變量的屬性與成員函數的覆蓋,java-成員變量函數

編輯:JAVA綜合教程

java-成員變量的屬性與成員函數的覆蓋,java-成員變量函數


  java中在多態的實現是通過類的繼承或者接口的實現來完成的。

  在類繼承或者接口實現過程中就會涉及到成員屬性以及成員函數的重寫,需要注意的是,成員函數的重寫是直接覆蓋父類的(繼承中),但是成員變量重寫是不會進行覆蓋的。

  舉個類子:

    兩個類Person以及Man;

    都有相同名稱的屬性age以及相同名稱的方法say();

    public class Person {

      public int age;

      public void say() {

        System.out.println("person say...");

      }

    }

    

    public class Man {

      public int age;

      public void say() {

        System.out.println("man say...");

      }

    }

    //測試

    public class Proc {

      public static void main(String[] args) {

        Man man = new Man();

        System.out.println("----------屬性----------"); 

        man.age = 20;

        System.out.println(man.age);         //20

        Person person = man;

        person.age = 25;

        System.out.println(person.age);        //25  

     

        System.out.println("----------函數----------");

        Man m = new Man();

        man.say();                   //man say...

        Person p = m;

        p.say();                     //man say...

      }

    }

 

    通過上面的列子可以看出來,成員函數可以重寫,在通過父類調用子類方法的時候調用的是重寫的方法,而成員屬性不可以覆蓋(即使重寫了,沒有重寫不談);

    

    對於這個的區分可以這樣理解:

    從存儲角度看,屬性是存儲進堆中的,而方法只是在棧中暫存,不做長時間保存,執行過就釋放, 因此屬性不變(簡單理解,詳細的講起來太亂);

 

 

    以上內容均依據個人理解手打完成,如有雷同純屬偶然,不喜勿噴,有錯誤請指正  ----2016/7/17

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved