需要和使用抽象类或接口中的抽象方法

时间:2017-06-13 09:56:29

标签: java c# oop

当我们必须在子类中提供它们的实现时,抽象类或接口方法的抽象方法需要什么。是不是直接在子类中提供这些方法而不是在抽象类或接口中使它们成为抽象方法?

1 个答案:

答案 0 :(得分:1)

如果在抽象类中定义抽象方法,抽象类的非抽象方法可以调用这些方法,而不知道它们将如何实现。

此外,在抽象类或接口中定义抽象方法允许您编写仅依赖于抽象类或接口方法的代码,而不依赖于具体的子类或实现类。

例如:

public abstract class AbstractClass
{
    public abstract void method1();

    public void method2() {
        ...
        method1();
        ...
    }
}

public class ConcreteClass extends AbstractClass
{
    public void method1() {
        ...
    }
}

未在method1中将abstract定义为AbstractClass,您无法从method1中的method2致电AbstractClass,因为它只是ConcreteClass在具体的子类<div class="section"> <video id="bgvid" autoplay loop poster="img/Snapshot/Beach-Ball.jpg" alt="people playing soccer at the beach"> <source src="img/Mp4/Beach-Ball.mp4" type="video/mp4" /> <source src="img/Ogv/Beach-Ball.ogv" type="video/ogv" /> <source src="img/Webm/Beach-Ball.webm" type="video/webm" /> </video> <!-- bottle navigation --> <div class="bottle"> <h1>Beast Mode On</h1> <div class="bottle-nav"> <a href="#secOne"><img src="img/bottles/125_bluelightningbottle.png" alt="Oztonic Premium Energy Drink Bottle"></a> <a href="#secTwo"><img src="img/bottles/125_redlightningbottle.png" alt="OzTonic Black Energy Drink Bottle"></a> <a href="#secThree"><img src="img/bottles/125_yellowlightningbottle.png" alt="OzTonic Gold Energy Drink Bottle"></a> </div> </div> <!-- sections --> <div class="zero"> <h2>Which Beast Are You?</h2> </div> <div class="section secOne" id="secOne"></div> <div class="sub_sectionOne"> <h2>I'm a Premium Beast</h2> </div> <div class="section secTwo" id="secTwo"></div> <div class="sub_sectionTwo"> <h2>I'm a Black Beast</h2> </div> <div class="section secThree" id="secThree"></div> <div class="sub_sectionThree"> <h2>I'm a Gold Beast</h2> </div> 中实现。