如何用接口方法替换抽象方法?

问题描述 投票:0回答:1

我在

package stacks
包中有几个 java 文件。

第一个是一个

abstract class Stack
类,其中有一个
public abstract void print()
方法。

第二个是一个

public interface FancilyPrint
接口,其中有一个
void fancyPrint()
方法。

我现在正在上

public class LinkedListStack extends Stack implements FancyPrint
课程。

如何编写一个满足接口契约的

fancyPrint()
方法,而不是从抽象类中编写无用的
void print()
方法?在此类中拥有标准的
print()
方法是没有用的,因为它使用自己的
fancyPrint()
方法实现了接口。我不记得该怎么做。

以下是我的课程供参考:

Stack.java:

package stacks;

public abstract class Stack<AnyType>
{
    public abstract void push(AnyType data);

    public abstract AnyType pop();

    public abstract AnyType peek();

    public abstract boolean isFull();

    public abstract boolean isEmpty();

    public abstract void print();
}

LinkedListStack.java

package stacks;

import linkedlists.*;

public class LinkedListStack<SomeType> extends Stack<SomeType> implements FancyPrint
{
    LinkedList<SomeType> l = new LinkedList<>();
    
    @Override
    public void push(SomeType data)
    {
        l.head_insert(data);
    }

    @Override
    public SomeType pop()
    {
        return l.delete_head();
    }

    @Override
    public SomeType peek()
    {
        return l.headData();
    }

    @Override
    public boolean isFull()
    {
        return false;
    }

    @Override
    public boolean isEmpty()
    {
        return l.isEmpty();
    }

    @Override
    public void fancyPrint()
    {
        
    }

    // I do not need this method for this class. I will need it for other classes
    // that extend the Stack abstract class.
    @Override
    public void print()
    {

    }

精美打印界面:

package stacks;

public interface FancilyPrint
{
    void fancyPrint();
}
java inheritance interface
1个回答
0
投票

我知道我可以从

fancyPrint()
方法调用
print()
方法。这是我唯一能想到的。

© www.soinside.com 2019 - 2024. All rights reserved.