文章目錄
  1. 1. 泛型对于解决面对对象编程的算法设计可以提高其运算速度,但是对于引用类型来说还是没什么差别,因为引用类型只是指针的地址的调用,简单来说泛型还是挺好理解的,但是对于泛型、非泛型、继承和接口的融合就有些迷惑了。
    1. 1.0.1. 比如说这种接口
  2. 1.1. 这个泛型接口继承了两个非泛型接口,和一个泛型接口。
  • 2. 我一开始理解泛型就是一个个模型,只要我们把类型一个参数赋给他,他就能生成一个标准的类型,他缺少的只是一个参数而已,我们引用的时候感觉就像我们引用一个“全体方法”,把参数赋给类型后就可以一直调用类中的方法了,但是对于接口的继承如何理解?
  • 泛型对于解决面对对象编程的算法设计可以提高其运算速度,但是对于引用类型来说还是没什么差别,因为引用类型只是指针的地址的调用,简单来说泛型还是挺好理解的,但是对于泛型、非泛型、继承和接口的融合就有些迷惑了。

    比如说这种接口
    public interface IEnumeratot<T>:IDisposable,IEnumerator,ICompare<T>
    

    这个泛型接口继承了两个非泛型接口,和一个泛型接口。


    我一开始理解泛型就是一个个模型,只要我们把类型一个参数赋给他,他就能生成一个标准的类型,他缺少的只是一个参数而已,我们引用的时候感觉就像我们引用一个“全体方法”,把参数赋给类型后就可以一直调用类中的方法了,但是对于接口的继承如何理解?

    对于泛型类的继承,继承的类必须实现泛型的参数或者保留泛型的参数,比如下面

      public class A<T>
    {
        public T tt;
    }
    public class C<T> : A<T>
    {
        public T tt;
    }
    

    或者是这样

      public class A<T>
    {
        public T tt;
    }
    public class C : A<string>
    {
        C cc;
    }
    

    对于泛型继承非泛型类,比如下面

    public class A 
    {
         A aa;
     }
    
     public class B<T>:A
    {
        B<T> bb;
    }
    

    基类是非泛型,而继承的是泛型类,我感觉这种构造就是让泛型类多了一种包容性,比如下面的链表实现的代码,让基类是非泛型,而继承是泛型,就能让链表可以连起很多种类型的数据,而本身的类型安全没有丢失。

    public class Node
    {
            pretected Node next;
              public Node(Node next){
                this.next=next;
                }
    }
    public class TypeNode<T>:Node
    {
        public T data ;
        public TypeNode(T data):this(data ,null){
            }
        public TypeNode(T data,Node next):base(next){
            this.data=data;
            }
    
        }
    

    泛型的约束

    文章目錄
    1. 1. 泛型对于解决面对对象编程的算法设计可以提高其运算速度,但是对于引用类型来说还是没什么差别,因为引用类型只是指针的地址的调用,简单来说泛型还是挺好理解的,但是对于泛型、非泛型、继承和接口的融合就有些迷惑了。
      1. 1.0.1. 比如说这种接口
    2. 1.1. 这个泛型接口继承了两个非泛型接口,和一个泛型接口。
  • 2. 我一开始理解泛型就是一个个模型,只要我们把类型一个参数赋给他,他就能生成一个标准的类型,他缺少的只是一个参数而已,我们引用的时候感觉就像我们引用一个“全体方法”,把参数赋给类型后就可以一直调用类中的方法了,但是对于接口的继承如何理解?