1. 程式人生 > >java面向物件的三大特性

java面向物件的三大特性

1 . 面向物件的三大特性:

Java 作為面向物件程式語言,你得知道OOP的的三大特性封裝繼承多型

封裝的優點

  • 1. 良好的封裝能夠減少耦合。

  • 2. 類內部的結構可以自由修改。

  • 3. 可以對成員變數進行更精確的控制。

  • 4. 隱藏資訊,實現細節 

如:將Person屬性定義為私有許可權,通過set和get將public許可權進行對外訪問

public class Person{
    private String name;
    private int age;
​
    public int getAge(){
      return age;
    }
​
    public String getName(){
      return name;
    }
​
    public void setAge(int age){
      this.age = age;
    }
​
    public void setName(String name){
      this.name = name;
    }
}

繼承:能夠繼承父類的public和protected成員變數;不能夠繼承父類的private成員變數。

public abstract class Programmer {
	
	public void userLanguage() {
		System.err.println("編寫語言");
	}
	abstract void sex();
}

public class JavaProgrammer extends Programmer{
	
	@Override
	public void userLanguage() {
		System.out.println("java語言編寫程式碼");
		super.userLanguage();
	}

	@Override
	void sex() {
		System.out.println("this is a man");
	}
}

public class SWMain {

	public static void main(String[] args) {
		Programmer programmer = new JavaProgrammer();
		programmer.userLanguage();
	}
	
}

多型分為兩種:重寫式多型和過載式多型,設計到向上轉型和向下轉型。

如:

public class Animal {
    public void eat(){
        System.out.println("animal eatting...");
    }
}
 
public class Cat extends Animal{
 
    public void eat(){
 
        System.out.println("我吃魚");
    }
}
 
public class Dog extends Animal{
 
    public void eat(){
 
        System.out.println("我吃骨頭");
    }
 
    public void run(){
        System.out.println("我會跑");
    }
}
 
public class Main {
 
    public static void main(String[] args) {
 
        Animal animal = new Cat(); //向上轉型
        animal.eat();
 
        animal = new Dog();
        animal.eat();
    }
 
}