A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在这段代码中。子类继承了父类,如何打印子类和父类中各自的全部内容?

package com.heima.my_test;

import java.util.ArrayList;
import java.util.Iterator;

class Animal{
        private String name;
        private int foots;
       
        Animal(String name,int foots){
                this.name = name;
                this.foots = foots;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getFoots() {
                return foots;
        }
        public void setFoots(int foots) {
                this.foots = foots;
        }   
}
class Cat extends Animal{

        Cat(String name, int foots) {
                super(name, foots);
        }
       
}
public class GenericDemoTest03 {
  public static void main(String[] args){
          ArrayList<Animal> al01 = new ArrayList<Animal>();
          al01.add(new Animal("爬行", 4));
          al01.add(new Animal("飞禽", 2));
          
          pp_AC(al01);
          
          ArrayList<Cat> al02 = new ArrayList<Cat>();
          al02.add(new Cat("Tom", 4));
          
          pp_AC(al02);
          
  }
  public static void pp_AC(ArrayList<? extends Animal> al){
          Iterator<? extends Animal>  it = al.iterator();
          while(it.hasNext()){
                //如何打印对象中的所有内容
                 System.out.println(it.next());//如何打印对象中的所有内容
          }
  }

}

6 个回复

倒序浏览
while循环中,写Animal a = it.next() ;
System.out.println(a.getName() + a.getFoots()) ;
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报

刚才打印了一下,结果对了。有点不明白,上面用到的事泛型,在while中那样写,怎么就可以打印出来了呢?
回复 使用道具 举报
跟泛型没啥关系吧,这个主要是对象向上转型,调用方法,而这些setter和getter方法Cat类继承而来,所以都能打印
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
文明密码 发表于 2016-11-22 23:52
跟泛型没啥关系吧,这个主要是对象向上转型,调用方法,而这些setter和getter方法Cat类继承而来,所以都能 ...

O(∩_∩)O谢谢
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马