簡體   English   中英

用Java中的抽象類定義確切的類

[英]Define exact class from abstract class in Java

我有一個名為component的類,該類將Shape Object作為參數。 創建組件對象的主類並不確切知道它要發送給它的形狀的類型,只知道它發送了抽象形狀。 但是,我的組件知道它只會得到一個三角形,因此使用其特定屬性。

我的問題是,如何將Abstract參數轉換為它的特定子類? 例:

public class TriangleHandler extends AbstractHandler{
    //More
    //Code
    //Here
    public tick(AbstractShape shape){
        shape.doTrinagleStuff();
    }
}

public class MainClass{
    private AbstractShape currentShape;
    private AbstractHandler currentHandler;
    //More
    //Code
    //Here
    public tick(){
        currentHandler.tick(currentShape);
    }
}

您不能沒有演員。 您只能執行在抽象類中定義的方法,如果您在帶有特定實現的三角類中實現它,則可以。 為了能夠運行未抽象定義的方法,您必須進行強制轉換

只需投放:

public class TriangleHandler extends AbstractHandler{
    public tick(AbstractShape shape){
        // Since we KNOW it's a triangle, we can cast it
        Triangle triangle = (Triangle)shape;
        triangle.doTrinagleStuff();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM