歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java面向對象的三大特征

Java面向對象的三大特征:“封裝、繼承、多態”。

以本文為例,User類中的變量為私有變量,只能通過創建對象(此時構造方法自動調用)來賦值。外界只能通過公有方法api()來訪問User類。

Admin類繼承了User類,調用了其構造方法,還重寫了method_1方法,增加了一個特有方法power()。

User文件

public class User {
    /**
    * 私有變量, 僅限本類訪問
    */
    private String name;
    private int age;

    /**
    * 構造方法, 自動調用
    */
    public User(String name, int age){
        this.name = name;
        this.age  = age;
    }

    /**
    * 私有方法, 僅限本類訪問
    */
    private void method_1(){
        System.out.println("i am a " + name + " ; my age is: " + age);
    }

    /**
    * 可被子類繼承、覆蓋和同包調用
    */
    protected void method_2(){
        System.out.println("i am not override");
    }

    /**
    * 公有方法,對外接口
    */
    public void api() {
        method_1();
        method_2();
    }
}

Admin文件

public class Admin extends User {
    /**
    * 構造方法
    */
    public Admin(String name, int age) {
        // 使用父類的構造方法
        super(name, age);
    }

    /**
    * 覆蓋父類的同名方法
    */
    protected void method_2() {
        System.out.println("NO, you are override");
    }

    /**
    *  子類特有方法
    */
    public void power(){
        System.out.println("admin is powerful");
    }
}

Main文件

public class Main{
    public static void main(String[] arg) {
        // 實例化一個User對象,並調用User的公有方法
        User a = new User("user", 12);
        a.api();

        // 輸出換行,方便區分不同的代碼
        System.out.println();

        // 實例化一個Admin對象,並調用Admin的兩個方法
        Admin admin_me = new Admin("admin", 23);
        admin_me.api();    // 繼承自User父類
        admin_me.power();  // 自身獨有的方法

        System.out.println();

        /**
        * 多態性
        */
        User test_admin = new Admin("test_admin", 34);
        test_admin.api();
    //  test_admin.power(); // User中沒有聲明power這個方法,所以不能使用
    }
}

Copyright © Linux教程網 All Rights Reserved