<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java 抽象示例 > 原文: [https://javatutorial.net/java-abstraction-example](https://javatutorial.net/java-abstraction-example) 此示例演示了 Java 編程語言中抽象的用法 ## 什么是抽象 抽象是向用戶隱藏實現細節的過程。 只有功能將提供給用戶。 在 Java 中,使用抽象類和接口來實現抽象。 我們對 Java 接口有更詳細的說明,如果您需要有關接口的更多信息,請[首先閱讀本教程](https://javatutorial.net/java-interface-example)。 抽象是[面向對象編程(OOP)](https://javatutorial.net/java-oop)背后的四個主要概念之一。 OOP 問題在求職面試中很常見,因此您可能會在下次 Java 求職面試中遇到有關抽象的問題。 ## Java 抽象示例 舉一個抽象的例子,我們將創建一個名為`Employee`的超類和兩個子類 - `Contractor`和`FullTimeEmployee`。 這兩個子類都有共同的屬性可以共享,例如雇員的姓名和每小時將支付給該人的金額。 承包商和全職員工之間的主要區別是 - 他們在公司工作的時間。 全職員工每天持續工作 8 個小時,承包商的工作時間可能會有所不同。 ![Java abstract class example](https://img.kancloud.cn/7f/d7/7fd7f5576d4aa09451b2e1db95e2fad8_629x308.jpg) Java 抽象類示例 首先創建超類`Employee`。 注意在類定義中`abstract`關鍵字的用法。 這將類標記為抽象,這意味著它不能直接實例化。 我們將稱為`calculateSalary()`的方法定義為抽象方法。 這樣,您可以將此方法的實現留給`Employee`類的繼承者。 ```java package net.javatutorial; public abstract class Employee { private String name; private int paymentPerHour; public Employee(String name, int paymentPerHour) { this.name = name; this.paymentPerHour = paymentPerHour; } public abstract int calculateSalary(); public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPaymentPerHour() { return paymentPerHour; } public void setPaymentPerHour(int paymentPerHour) { this.paymentPerHour = paymentPerHour; } } ``` `Contractor`類繼承了其父級`Employee`的所有屬性,但必須提供其自己的`calculateSalary()`方法的實現。 在這種情況下,我們將每小時的付款額乘以給定的工作時間。 ```java package net.javatutorial; public class Contractor extends Employee { private int workingHours; public Contractor(String name, int paymentPerHour, int workingHours) { super(name, paymentPerHour); this.workingHours = workingHours; } @Override public int calculateSalary() { return getPaymentPerHour() * workingHours; } } ``` `FullTimeEmployee`也有自己的`calculateSalary()`方法實現。 在這種情況下,我們只需乘以恒定的 8 小時即可。 ```java package net.javatutorial; public class FullTimeEmployee extends Employee { public FullTimeEmployee(String name, int paymentPerHour) { super(name, paymentPerHour); } @Override public int calculateSalary() { return getPaymentPerHour() * 8; } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看