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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭盼 中级黑马   /  2012-7-3 11:33  /  2775 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.pengpan.test;
/*
* 测试泛型类的继承
* */

public class Pair<T>{
       private T first=null;
       private T second=null;

       public Pair(T fir,T sec){
            this.first=fir;
            this.second=sec;
       }
       public T getFirst(){
             return this.first;
       }
       public T getSecond(){
             return this.second;
       }
       public void setFirst(T fir){
             this.first=fir;
       }
}

写了一个类来继承它,并覆盖里面的方法:
package cn.pengpan.test;

class SonPair extends Pair<String>{
        public SonPair() {
                super(String fir,String sec);//这里为什么老是提示构造方法有问题,fir不是已经从父类继承过来了吗
        }
    public String getFirst()
    {
            System.out.println(fir);
    }
   public static void main(String[] args) {
        SonPair ttPair=new SonPair("xxx","YYY");
        getFirst();
}
}
构造方法老是提示错误,而且方法似乎也没覆盖成功
谁能总结下自定义泛型类的继承规则或是实现接口的规则,如果需要覆盖父类的方法,则需要
注意什么,泛型类型到这里就开始感觉有 点让人晕了,谁能系统总结下,最好通俗一点
,有代码说明更好

3 个回复

正序浏览
楼主没有仔细检查,而且代码很乱。
回复 使用道具 举报
你这个程序你就没有运行过吧,错误太多了,sonPair的主方法中的SonPair ttPair=new SonPair("xxx","YYY");怎么能有参数,你前面的方法了可是没有
传递参数的,还有你的sonPair没有定义fir和sec,那你怎么打印。至于你说的那个问题,那是因为前面已经定义为String类型了,你后面在写String fir那就是
重新定义对象了,应该把String去掉。前面要定义fir和sec。
回复 使用道具 举报
你的构造方法写错了,写成这样:
public SonPair(String fir, String sec) {
                super(fir, sec);
}

你写成我这样试试:
public class SonPair extends Pair<String>{
   
   public SonPair(String fir, String sec) {
                super(fir, sec);
        }

public static void main(String[] args) {
        SonPair ttPair=new SonPair("aaa", "bbb");
        System.out.println(ttPair.getFirst());
        
}
}

未命名.jpg (46.88 KB, 下载次数: 64)

未命名.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马