标签: interface

Java方法接受不同超类的ArrayLists,必须使用Interface?

我有一个方法findNearest,用于查找距离对象最近Object的点ArrayList.

但是我希望能够为不同类的ArrayLists调用方法,这些类是我的基类的超类 Entity

例如,Tree是一个子类Entity,按原样Worker.我希望能够findNearest(x,y,<Arraylist of Trees>) 和也findNearest(x,y,<Arraylist of Workers>)

我想我可以使用一个接口来实现这一点,但是有更简单/更清晰的方法吗?

谢谢

邓肯

java interface arraylist

0
推荐指数
1
解决办法
95
查看次数

接口中的代码实现

我一直想知道为什么允许在接口中执行代码实现,当接口被假定为不包含代码实现时:

public interface someInterface{
String someString = "example";   
}
Run Code Online (Sandbox Code Playgroud)

我可以使类实现此接口,而不会出现错误:

public class someClass implements someInterface
Run Code Online (Sandbox Code Playgroud)

怎么会?

java implementation interface

0
推荐指数
1
解决办法
133
查看次数

为什么答案会"好"?

以下是我试图运行的代码,输出是Good.那么,我们可以使用一个类实现的接口变量吗?

interface IDummyInterface {
    public String TYPE = "Good";
}

class Test implements IDummyInterface {

}

public class MyApplication {
    public static void main(String[] args) {
        System.out.println(Test.TYPE);
    }
}
Run Code Online (Sandbox Code Playgroud)

java interface class object

0
推荐指数
1
解决办法
72
查看次数

只有子类覆盖Java中的接口方法

我知道实现某些类的每个类Interface都必须覆盖它的所有方法.除非当前的课程是abstract.

正如您所见,在下面提到的代码模板中演示了这一点.

在我的情况下只ChildClass覆盖foo()方法.

接口

public interface MyItf {
   public void foo();
}
Run Code Online (Sandbox Code Playgroud)

家长班

public abstract class ParentClass implements MyItf {

}
Run Code Online (Sandbox Code Playgroud)

儿童班

public class ChildClass extends ParentClass{

  @Override
  public void foo() {

  }
}
Run Code Online (Sandbox Code Playgroud)

但是这个实现要求我设置ParentClassabstract.

如果我想离开ParentClass单班而不抽象怎么办?

有没有人有其他方式只有孩子使用MyItf而不是父类?

谢谢,

[编辑]

基于所有答案我在我的案例中找到了解决方案:

我编写了一个游戏,我有140个子类.

为了使代码更灵活,我需要创建"空"接口并允许所有孩子实现它,如:

 public interface UnknownItf {

 }
Run Code Online (Sandbox Code Playgroud)

所以下次如果我需要为孩子们​​添加新界面,我会写:

public interface UnknownItf extends NewItf{
   ///...
}
Run Code Online (Sandbox Code Playgroud)

java interface

0
推荐指数
1
解决办法
2814
查看次数

我有一个java代码,无法理解界面

这是我有三个接口的代码

interface i1{ 
int x=1;
}
interface i2{ 
int x=2;
}
interface i3{ 
int x=3;
}
class A implements i1,i2,i3{
system.out.println(x); // It shows Field is ambgous
}
Run Code Online (Sandbox Code Playgroud)

如何回答这个或如何克服这个问题.

java interface

0
推荐指数
1
解决办法
106
查看次数

java.util.Collections和java.util.Collection在Java中有任何关系吗?

我正在阅读集合以查看Javadocs的实现层次结构.

Collections 被宣布为 public class Collections extendds Object

Collection<E> 被宣布为 public interface Collection<E> extends Iterable<E>

AbstractCollection 被宣布为 public abstract class AbstractCollection<E> implements Collection<E>

AbstractList 被宣布为 public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>

我的问题是1)之间是否存在任何联系Collections and Collection.我什么都没看到extending Collections Class

2)什么是需要AbstractList一流的,因为在实现的方法AbstractList,如类listIterator可能以及在抽象List Interface和实现类可能以及实现这样的方法?

java collections interface list

0
推荐指数
1
解决办法
96
查看次数

C#中的继承接口

在c中,抽象方法必须由子类实现.所以我的问题是当接口继承另一个接口时为什么它不实现所有基接口成员.

public interface IShape
{
  void Points();
}
public interface ICircle: IShape
{
  void IsDrawAble();
}
Run Code Online (Sandbox Code Playgroud)

当我在Visual Studio 2010中运行此程序时,没有出现任何错误.根据定义,ICircle必须实现Points函数.

谢谢

c# inheritance interface

0
推荐指数
1
解决办法
393
查看次数

在Python中创建类似Java的接口

我有多个具有共同功能的类,由于各种原因,它们的实现方式不同.我在相同的上下文中使用所有这些类,但我不知道在运行时将使用哪一个.我想实例化不同的类,但使用相同的代码行来调用常用功能.

所以,我虽然使用继承(显然),现在我的代码看起来像这样:

class Base():
  def common(self):
    return "abstract"

class A(Base):
  def common(self):
    return "A"

class B(Base):
  def common(self):
    return "B"
Run Code Online (Sandbox Code Playgroud)

我希望能够将任何派生类实例化为Base(这样我就不必特殊情况并检查我添加的每个新类)并调用它的common方法并获得所需的"A"或"B" "结果.

python inheritance interface

0
推荐指数
1
解决办法
1418
查看次数

可以"实施N次"的接口设计

目前我正在使用通用接口来声明像这样的IoC依赖:

public interface IComposition<T>
{
  T Dependency { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但碰巧我的实现可能同时具有多个依赖项.

我知道这很荒谬,但只是让你们明白我需要的东西......让我说我多次实现界面来解决我的问题:

public class MyClass : IComposition<TypeA>, IComposition<TypeB>
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

我相信使用IComposition<T1, T2, ...>ITypeXDependent每种类型的一个不是很好的选择.我的核心需要使用反射在运行时解决依赖关系.所以,这就是为什么我不通过构造函数传递依赖项.

有谁知道一些可以帮助我的技巧?

c# oop interface

0
推荐指数
1
解决办法
104
查看次数

实现java接口并使用泛型

我有一个名为BST的Java接口(二进制搜索树的简称),它具有泛型类型Key,Value,其中Key扩展为Comparable.我将其定义如下.

public interface BST<Key extends Comparable<Key>,Value> {

    public void put(Key key,Value value);

    public Value get(Key key);

    public void delete(Key key);

    public Iterable<Key> keys();

}
Run Code Online (Sandbox Code Playgroud)

现在我想定义上面接口的实现.我试过这个

public class BSTImpl<Key extends Comparable<Key> ,Value>  implements BST<Key extends Comparable<Key>,Value> {

... 

}
Run Code Online (Sandbox Code Playgroud)

上面的定义在eclipse IDE中导致错误信息. extends后面的令牌implements BST<Key似乎是罪魁祸首

令牌"extends"的语法错误,预期

如果我从定义中省略"extends"标记(如下所示),则错误消失,我可以通过eclipse正确生成未实现的方法

public class BSTImpl<Key extends Comparable<Key> ,Value>  implements BST<Key ,Value> {
    @Override
    public void put(Key key, Value value) {
        // TODO Auto-generated method stub          
    }
    @Override
    public Value get(Key key) {
        // TODO Auto-generated …
Run Code Online (Sandbox Code Playgroud)

java generics interface

0
推荐指数
1
解决办法
603
查看次数