相关疑难解决方法(0)

Java泛型 - 为什么允许"扩展T"而不是"实现T"?

我想知道Java中是否存在使用always" extends"而不是" implements"来定义类型参数边界的特殊原因.

例:

public interface C {}
public class A<B implements C>{} 
Run Code Online (Sandbox Code Playgroud)

被禁止但是

public class A<B extends C>{} 
Run Code Online (Sandbox Code Playgroud)

是正确的.这是什么原因?

java generics syntax design-choices

293
推荐指数
7
解决办法
15万
查看次数

什么是Java中的参数多态(带示例)?

据我所知,参数多态是一种允许对各种数据(类型)进行统一操作的技术.我的知识是否正确?

这个例子是参数多态吗?我相信这是因为Animal.talk允许在不使用特定动物类型(猫或狗)的情况下调用谈话.

public interface Animal
{
  public String talk();
}

public class Cat implements Animal
{
  public String talk()
  {
    return "Cat says Meow!";
  }
}

public class Dog implements Animal
{
  public String talk()
  {
    return "Dog says Woof! Woof!";
  }
}

import java.util.*;

public class PolymorphismExample
{
  public static void main(String[] args)
  {
    Collection<Animal> animals = new ArrayList<Animal>();
    animals.add(new Cat());
    animals.add(new Dog());
    for (Animal a : animals)
    {
      System.out.println(a.talk());
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问候.

编辑:如果我的例子没有具体展示参数多态性,请你提供一个?谢谢.

java polymorphism

16
推荐指数
3
解决办法
2万
查看次数

Java Generics - 实现和扩展

我想写点像

public class A implements B<T implements C> {}
Run Code Online (Sandbox Code Playgroud)

public abstract class M<I extends P> extends R<I extends P> implements Q<I extends P> {}
Run Code Online (Sandbox Code Playgroud)

但我得到的错误就像多个标记和令牌上的语法错误延伸,预期.请让我知道这样做的正确方法是什么.

java generics

11
推荐指数
2
解决办法
2万
查看次数

何时使用扩展和何时使用接口?

我们可以扩展一个类,但是我们不能实现一个类.我们可以实现一个接口,但不能扩展接口.

在什么情况下我们应该使用扩展?

java design-patterns

2
推荐指数
1
解决办法
6218
查看次数