zoukankan      html  css  js  c++  java
  • 构造函数和继承

    构造函数和继承

    左直拳

     

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

        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) {}

     }

    两种方法都可以。

     

     
  • 相关阅读:
    层叠
    属性值的计算过程
    HTML+CSS笔记1-杂
    C语言—栈
    C语言零碎知识点
    线性表,顺序表,链表,数组的区别与联系
    C语言—单链表
    转载——从机器学习谈起
    readonly和const关键字
    C#中的扩展方法
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258286.html
Copyright © 2011-2022 走看看