为了账号安全,请及时绑定邮箱和手机立即绑定

java 如何继承泛型

java 如何继承泛型

慕无忌1623718 2019-02-19 16:43:32
public class TestServiceImpl extends ServiceImpl<TestMapper, Test> 上面这句是直接继承泛型的写法。 我想要的是这样父类<M, T> extends ServiceImpl<M, T>public class TestServiceImpl extends 父类<TestMapper, Test> 想问下如何实现呢 其实我想多继承,所以加了个父类,但泛型这部分我就不会写了
查看完整描述

3 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

补充一下泛型类的继承问题,例如父类声明如下:

public class ServiceImpl<M, T> {
    public void test(M, T) {
        // do something
    }
}

子类继承父类分两种情况:

  1. 保持子类的泛型化:

    public TestServiceImpl<M, T> extends ServiceImpl<M, T> {
        @Override
        public void test(M, T) {
            // do something
        }
    }
  2. 子类不再泛型化

    public TestServiceImpl extends ServiceImpl<String, Integer> {
        @Override
        public void test(String, Integer) {
            // do something
        }
    }

这样解释是不是清楚了很多!

查看完整回答
反对 回复 2019-03-01
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

子类<M,N> extends 父类<M,N>
这和多继承有啥关系。。。
没什么关系

我只是想继承 ServiceImpl<TestMapper, Test> 还继承 父类

ServiceImpl<TestMapper, Test> 是别人写的,
但我想添加些方法,所以想自己写个父类,不知道怎么写了

查看完整回答
反对 回复 2019-03-01
?
波斯汪

TA贡献1811条经验 获得超4个赞

泛型继承的原则

继承泛型类时,必须对父类中的类型参数进行初始化。或者说父类中的泛型参数必须在子类中可以确定具体类型。

例如:有一个泛型类Parent<T>,那么Son类定义时有两种方式初始化父类型的类型参数:

1 用具体类型初始化:

public class Son extends Parent<String>{}

2 用子类中的泛型类型初始化父类:

public class Son<T> extends Parent<T>{}
查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 826 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信