方法的重載和覆蓋java
重載(overload):在一個類中重載多個方法,方法名相同,參數形式、數量不一樣ide
重載的規則:
一、重載時只能經過相同的方法名、不一樣的參數形式實現,能夠是不一樣的參數類型,不一樣的參數個數,不一樣的參數順序(參數類型必須不同);
二、不能經過訪問權限、返回類型、拋出的異常進行重載;
三、方法的異常類型和數目不會對重載形成影響;函數
覆蓋(override):重寫一個方法,用以實現不一樣的功能,通常是子類重寫父類的方法對象
重寫(覆蓋)的規則:
一、參數列表必須徹底相同,不然不能稱其爲重寫而是重載.
二、訪問修飾符必定要大於被重寫方法的訪問修飾符(public>protected>default>private)。
三、返回值必須和被重寫的方法的返回一致;
四、拋出的異常必須和被重寫方法的所拋出的異常一致,或者是其子類;
五、被重寫的方法不能爲private,不然在其子類中只是新定義了一個方法,並無對其進行重寫。
六、靜態方法不能被重寫爲非靜態的方法(會編譯出錯)。繼承
繼承(extends):繼承父類的所有功能,只能有一個繼承接口
實現(implements):實現接口中所定義的方法,可實現多個接口內存
默認構造器:Java類中有默認的無參構造器,格式爲<class_name>(){},做用是根據類型爲對象提供默認值,0或null...作用域
有參構造器:爲不一樣的對象提供不一樣的初始化參數,構造方法也能夠進行重載編譯器
構造函數與方法之間的區別編譯
Java構造函數 | Java方法 |
---|---|
構造器用於初始化對象的狀態(數據)。 | 方法用於暴露對象的行爲。 |
構造函數不能有返回類型。 | 方法通常都有返回類型。 |
構造函數隱式調用。 | 方法要顯式調用。 |
若是沒有指定任何構造函數,java編譯器提供一個默認構造函數。 | 在任何狀況下編譯器都不會提供默認的方法調用。 |
構造函數名稱必須與類名稱相同。 | 方法名稱能夠或能夠不與類名稱相同(隨意)。 |
成員變量:定義在類中,類中均可以訪問;存儲在堆內存的對象中;有默認初始值
局部變量:做用於局部,局部訪問;存儲在棧中,隨做用域結束而清除;沒有初始值
變量使用時遵循 就近原則
靜態變量(方法):隨着類的加載存在,類消失而消失;可經過類名調用;存儲在方法區的靜態區;對象之間共享
對象的做用域經過{}來分割