跳过正文
  1. 博客/
  2. 随笔/
  3. 编程/

泛型继承的理解

·1 分钟· ·
随笔 编程
目录

泛型对于解决面对对象编程的算法设计可以提高其运算速度,但是对于引用类型来说还是没什么差别,因为引用类型只是指针的地址的调用,简单来说泛型还是挺好理解的,但是对于泛型、非泛型、继承和接口的融合就有些迷惑了。
#

比如说这种接口
#
		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;  
			}  

		}  

泛型的约束

相关文章

《我编程,我快乐:程序员职业规划之道读后感
·3 分钟
随笔 人生
一眨眼,四年过去了,再过几年就到了三十而立的年龄了,年轻的时候走马观花, 好像一直为了学习而学习,为了规划而规划,在经过被社会的毒打之后, 自己眼睛里面好像也没有当年的光了
八月杂感
·1 分钟
随笔 人生
一眨眼暑假就要过完了,这段博客又停下来了,倒不是因为我停下来学东西,而是我又忘了去归纳总结自己学的东西,总是一个鲁莽的心态去学,总感觉停下来会阻挡自己学习的脚步,但是其实写博客也是学习,把自己的学到的知识转换成自己的东西,写出来的过程就是帮自己的过程,其实这个方法也是一个非常牛逼的学习的方法叫做费尔曼学习法
<<机器学习实战>>心得.
·2 分钟
AI 心得
先谈谈我对机器学习的理解 # 什么是机器学习? # 我们人类有从婴儿开始就开始学习,父母教我们穿衣吃饭、老师教我们读书写字,我们开始能辨别好人坏人,开始通过自己的经验来判断新事物。
GitHub Education Pack
·3 分钟
后端 软件
GitHub推出一个对学生和教师的福利包,对于学生来说这是一个不小 的福利,只要通过一个edu邮箱就可以领取,但奈何国内有些无良人买卖 邮箱,所以GitHub对于.cn的邮箱一律拒绝,但是可以通过上传学生证的方法 得到验证,题主刚开始用学校邮箱试了试,失败了,抱着试一试的心态,上传了 学生证,没想到第二天就给我回复,并给我这个豪华大礼包,接下来我就介绍介绍 如何用这个包来.
Numpy的简析
·3 分钟
后端 框架 Python
numpy简单来说就是python的C版数组实现,因为python原生列表虽然好使,但是生成大量数据时开销很大,而numpy是基于C的,生成大量数组非常简单,而且操作他们速度非常快.
PIL (Pillow)
·3 分钟
后端 框架 Python
Pillow 是 PIL的对Python3支持的另外一个分支,当然他对Python2也兼容,由于PIL安装起来比较烦,而使用pip可以很轻松的安装Pillow,所以我选择Pillow使用,但是其核心还是PIL库的。