gpt4 book ai didi

java - Java 中的多态性和接口(interface)

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:09 25 4
gpt4 key购买 nike

我是 Java 的新手,正在学习接口(interface)和多态性。我想知道最好的方法是什么。

假设我有一个简单的类。

class Object{

// Renders the object to screen
public void render(){
}

我想通过接口(interface)提供对象可以做的事情:

interface Animate{
// Animate the object
void animate();
}

如果我想实现动画接口(interface),我可以执行以下操作:

class AnimatedObject extends Object implements Animate{

public void animate() {
// animates the object
}

}

因为不是所有对象都可以设置动画,所以我想通过多态处理动画的渲染,但不知道如何在不使用 InstanceOf 的情况下区分对象,而不必询问它是否实现了接口(interface)。我打算将所有这些对象放在一个容器中。

class Example {

public static void main(String[] args) {

Object obj1= new Object();
Object obj2= new AnimatedObject();

// this is not possible but i would want to know the best way
// to handle it do i have to ask for instanceOf of the interface?.
// There isn't other way?
// obj1.animate();
obj1.render();
obj2.animate();
obj2.render();

}
}

最佳答案

你实际上比你知道的更近。事实上,您偶然发现了一个反复出现的问题,可以使用 Strategy Pattern 解决。 .

enter image description here

根据四人帮的定义,这个想法是:

Defines a set of encapsulated algorithms that can be swapped to carry out a specific behaviour

关于java - Java 中的多态性和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com