標籤:
內容包含:
/************************
封裝
繼承以及使用繼承所帶來的問題剖析
變數隱藏與方法重寫
*************************/
一. 封裝
通過get和set進行封裝
這裡面有個小技巧:通過快速鍵 Alt + Shift + 3 進行選擇一些快速高效的方法,選擇get和set進行快速建立,如下代碼:
package com.jfu.one;public class packAge { private int dog; private String cat; public int getDog() { return dog; } public void setDog(int dog) { this.dog = dog; } public String getCat() { return cat; } public void setCat(String cat) { this.cat = cat; } public static void main(String[] args){ }}
二. 繼承
作用:通過繼承可以實現代碼的複用。
java不支援多繼承.
子類可繼承父類的變數和方法, 除了private.
通過在類的聲明中加入extends子句來建立一個類的子類:
class SubClass extends SuperClass(){ }
舉例如下:
Car為父類, SmallCar為子類繼承Car, 而BMW繼承SmallCar
Car.java
package Carry;public class Car { int price; private String color; public static void print(){ System.out.println("父類Car"); }}
SmallCar.java
package Carry;public class SmallCar extends Car { void smallcar(){ System.out.println("這個一個小車子類"); } public static void main(String[] args){ SmallCar smallcar = new SmallCar(); smallcar.print(); }}
BMW.java
package Carry;public class BMW extends SmallCar{ public static void main(String[] args){ BMW bmw = new BMW(); bmw.print(); bmw.smallcar(); }}
運行BMW.java, 得出的結果:
父類Car這個一個小車子類
結果分析:
在BMW.java中, 這個類, 繼承了SmallCar類, 而SmallCar類又繼承於Car類, 所以BMW類可以使用SmallCar類和Car的屬性和方法.
三. 繼承中的變數隱藏及方法重載原則
變數隱藏原則:
子類中變數名與繼承自父類的變數名相同時, 則繼承自父類的變數將隱藏.
方法重寫原則:
1. 必須要有繼承關係
2. 重寫後的方法不能比被重寫的方法有更嚴格的存取權限, 可以相同.
3. 改寫後的重在方法不可以比重載的方法產生更多的例外(異常).
4. 傳回值, 方法名, 方法的參數個數必須與父類一致. (也就是說, 僅僅修改了裡面的內容, 其他的不能改變!)
Animal.java
package OverWrite;public class Animal { public void back(){ System.out.println("動物在說話"); }}
Dog.java
package OverWrite;public class Dog extends Animal { //方法重寫 public void back(){ System.out.println("狗在說話"); } public static void main(String[] args){ Dog dog = new Dog(); dog.back(); }}
執行結果:
狗在說話
【學習筆記】java物件導向進階編程1