天天看點

【Java】【基礎篇】day07:繼承、抽象類與接口

前言

本期任務:畢向東老師Java視訊教程學習筆記(共計25天)

  • 原視訊連結:黑馬程式員_畢向東_Java基礎視訊教程
  • day01:編寫HelloWorld程式
  • day02:操作符與條件選擇語句
  • day03:循環語句與函數
  • day04:數組
  • day07:繼承、抽象類與接口
  • day08:多态
  • day09:異常處理
  • day11:多線程
  • day12:線程安全與同步機制
  • day13:String類
  • day14:集合(ArrayList,LinkedList,HashSet)
  • day15:集合(TreeSet)和泛型)
  • day16:集合(HashMap、TreeMap)
  • day17:集合架構的工具類(Arrays、Collections)
  • day18:IO流(字元流讀寫)
  • day19:IO流(位元組流、轉換流讀寫)
  • day20:IO流(File對象)

代碼

/*
假如我們在開發一個系統時需要對員工進行模組化,員工包括3個屬性:姓名、工号、工資。
經理也是員工,除了含有員工的屬性之外,另外還有一個獎金屬性。
請使用繼承的思想設計出員工類和經理類。要求類中提供必要方法進行屬性通路。

員工類:name id pay

經理類:繼承了員工,并由自己特有的bonus

*/


abstract class Employee {
    private String name;
    private String id;
    private double pay;

    Employee(String name, String id, double pay) {
        this.name = name;
        this.id = id;
        this.pay = pay;
    }

    public abstract void work();

}

class Manager extends Employee {
    private int bonus;

    Manager(String name, String id, double pay, int bonus) {
        super(name, id, pay);
        this.bonus = bonus;
    }

    public void work() {
        System.out.println("manager work");
    }

}

           
/*
需求:擷取一段程式運作時間
思路:擷取程式開始和結束的時間并相減即可

擷取時間:System.currentTimeMillis();
*/

abstract class GetTime {
    public final void getTime() {
        long start = System.currentTimeMillis();
        runcode();
        long end = System.currentTimeMillis();
        System.out.println("毫秒:" + (end - start));
    }

    public abstract void runcode();

}

class SubTime extends GetTime {
    public void runcode() {
        for (int x = 0; x < 10000; x++) {
            System.out.println(x);
        }
    }
}


public class TemplateDemo {
    public static void main(String[] args) {
        SubTime st = new SubTime();
        st.getTime();
    }
}

           
abstract class Student {
    abstract void study();  // 必備功能

    void sleep() {
        System.out.println("sleep");
    }
}

interface Smoking {
    void smoke(); // 擴充功能
}

class ZhangSan extends Student implements Smoking {
    void study() {
    }

    public void smoke() {
    }
}