- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道多态性规则,我们可以像这段代码一样通过参数发送它
interface Animal {
void whoAmI();
}
class A implements Animal{
@Override
public void whoAmI() {
// TODO Auto-generated method stub
System.out.println("A");
}
}
class B implements Animal{
@Override
public void whoAmI() {
// TODO Auto-generated method stub
System.out.println("B");
}
}
class RuntimePolymorphismDemo {
public void WhoRU(List t){
System.out.println(t.getClass());
}
public static void main(String[] args) {
A a = new A();
B b = new B();
RuntimePolymorphismDemo rp = new RuntimePolymorphismDemo();
rp.WhoRU(a);
rp.WhoRU(b);
}
}
但是
List<Example> examples = new ArrayList<Example>();
在上面的代码中,我不明白为什么一定要用List<Example>
.
为什么我们不能这样使用?
ArrayList<Example> examples = new ArrayList<Example>();
因为当我们使用 List<Example>
我们不能使用只存在于 ArrayList
中的方法类 trimToSize()
我如何知道何时使用或不使用?
最佳答案
使用 List 而不是 ArrayList 的原因是,当你想使用 List 的特性而不关心它的实现时,那么只使用基接口(interface)或抽象类会给你更多的灵 active 。
如果您需要 ArrayList 的特殊功能,那么您可以指定它,但如果将来您决定将实现更改为 ArrayList 以外的其他东西,则很难更改(因为您必须到处更改代码它被引用,而不仅仅是底层代码)。
关于java - 我对多态感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907417/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!