构造函数和继承

构造函数和继承

左直拳

有同事用到了泛型,却编译通不过:

public class Class1<T,S>

{

public Class1(T t,S s){}

}

public class Class2<T, S> : Class1<T, S>

{

}

以为是泛型的原因。问到我,我也是支支吾吾,闪烁其词,一会儿说继承的基类不用再写泛型变量,一会儿又说可能是构造函数用了泛型。试了一下,才知道根本不关泛型的事,是构造函数的原因。

因为基类Class1只有一个构造函数,并且这个构造函数带了两个参数,造成继承出了问题。估计是继承时默认调用基类没有参数的构造函数。因此,在基类里加一个无参数的构造函数,编译通过:

public class Class1<T,S>

{

public Class1(T t,S s){}

public Class1(){}

}

也可以在子类Class2中创建一个带参数的构造函数,并调用基类初始化。

public class Class2<T, S> : Class1<T, S>

{

public Class2(T t, S s) : base(t, s) {}

}

两种方法都可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值