java - Java程序需要的建议

标签 java

我在 Java 中创建了一个名为 Farm 的类,其中包含动物列表(牛、 pig 和小鸡)。 myFarm 是 Farm 类的对象数组,其中包含 NamedCow、pig 和chick 类的对象。

我的示例代码在这里:

import java.util.*;

class Farm 

{

   private ArrayList< Animal >  myFarm;

   Farm() 

   { 

      myFarm=new ArrayList<Animal>();

      myFarm.add(new NamedCow("cow","Elsie","moo"));

      myFarm.add(new Chick("chick","cheep","cluck"));

      myFarm.add(new Pig("pig","oink"));

   }

   public void animalSounds(){

          Animal temp;

          for(int i = 0; i < myFarm.size(); i++){

             temp = myFarm.get(i);

             System.out.println(temp.getType() + " goes " + temp.getSound());

          }

          NamedCow named = (NamedCow)myFarm.get(0);

          System.out.println(named.getName());

       }

   }

我不明白代码中的一行:NamedCow name = (NamedCow)myFarm.get(0); 这里右侧括号内的 NamedCow 的含义是什么。有谁可以告诉我吗?

最佳答案

myFarmArrayList<Animal> .

在行

NamedCow named = (NamedCow)myFarm.get(0); 

您假设 ArrayList 中第一个索引中的对象属于类型 NamedCow ,基于该假设,您正在类型转换来自 Animal 的对象至NamedCow .

转换插入一个运行时检查 named被分配了 NamedCow ,请注意,如果不是这种情况,则会抛出运行时异常。

我强烈建议您阅读有关 Inheritance 的教程更好地理解这一点,因为它确实是编程的基础。

关于java - Java程序需要的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22498257/

相关文章:

Java(安卓) IOException : Authority expected at index 7: http://

java - 多个 Activity 的相同 Intent 过滤器

java - Velocity 无法使用 webApp 找到资源

Java method()++ VS method()+1

java - 如何在 Java 中对 XML 文档进行 UTF-8 编码

java - 日期对象转换为 (mm/dd/yyyy) 中的日期对象

java - 具有 Oracle 分析窗口功能的 Hibernate Criteria

java - Struts Action 中的多个入口点(迁移 Struts 2.2.3 -> 2.3.1)

java - 在 Java 中创建自定义周计数器?

java - hazelcast 配置中自动递增标志的用途