2014-04-21 53 views
-5

有人能帮我解释一下ma.add(new HighRights("AAA"));是做什么的?ArrayList泛型

主要从类:

public static void main(String [] a){ 
      ArrayList<SecurityRights> ma=new ArrayList<SecurityRights>(); 
      ma.add(new HighRights("AAA")); 
      } 

HighRights类:

public class HighRights extends SecurityRights 
{ 
    private String name; 

    public HighRights(String n){ 
    super(true); 
    this.name = n; 
    } 

    public String getName(){ 
     return name; 
    } 


    public static void main(String[] a){ 

    HighRights s= new HighRights("Lisa"); 
    System.out.print(s.getName() +" "+s.getSecret());     
    } 

} 
+4

请说明你到底明白了什么。你能指出文件的哪一部分不清楚吗? –

+1

这是关于自我解释,因为它可以得到... – csmckelvey

+0

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#add(E)...它。 。添加到列表中。 –

回答

1

这是一个简单的继承示例。

ma.add(new HighRights("AAA")); 

它增加HighRights类的新对象插入到List<SecurityRights>数组列表ma

HighRights extends SecurityRights 

这是继承。 所以它可能将子对象HighRights存储到父对象SecurityRights

请仔细阅读Inheritance

1

它创建HighRights类的新实例,并将它变成ArrayList<SecurityRights>一个实例。

这是编译器可接受的,因为HighRights对象实例通过IS-A测试(instanceof)为SecurityRights类绑定。

1
ArrayList<SecurityRights> ma=new ArrayList<SecurityRights>(); 

意味着maSecurityRightsArrayList

ma.add(new HighRights("AAA")); 

意味着你创建一个新对象HighRights,用值"AAA"初始化,并且将其添加到ma阵列。

由于HighRights extends SecurityRights,Java会将HighRights视为SecurityRights

+0

我将如何打印出HighRights中的值? – user3364498