其他分享
首页 > 其他分享> > 总结泛型和其使用语句

总结泛型和其使用语句

作者:互联网

在学习多态的过程中我们知道:
1)基类的引用可以指向子类的对象
2)Object是Java中所有类的祖先类

在顺序表中如果要保存指向person类型对象的引用或者指向Book类型对象的引用,我们只需要将我们顺序表的元素定义为Object类型就可以了。即:

class MyArrayList{
	private Object[] array;
	private int size;
}

但上述方法有一个弊端:在代码
MyArrayList list=new ArrayLIst();
list.add(new Person);
person P=(Person)list.get(0);
Book b=(Book)list.get(0);中
每次都得向下转型,编译时没问题运行时异常

所以引入泛型!!!
1,泛型方法
定义/使用:类名+<>

class MyArrayList<类型变量E>{
			private E<> array;
			private int size;
		}

2,泛型作用时期和背后简单原理
1)泛型是作用在编译期间的一种机制
2)MyArrayalista
MyArrayLIst
MyArrayLIst
泛型代码在运行期间,其实就是一个类型即MyArrayList,这个过程叫做类型擦除,本质上被E擦除为Object类型了。

3,泛型总结
1). 泛型是为了解决某些容器、算法等代码的通用性而引入,并且能在编译期间做类型检查。
2). 泛型利用的是 Object 是所有类的祖先类,并且父类的引用可以指向子类对象的特定而工作。
3). 泛型是一种编译期间的机制,即 MyArrayList 和 MyArrayList 在运行期间是一个类型。
4). 泛型是 java 中的一种合法语法,标志就是尖括号 <>

MyArrayList<Book> books=new MyArrayList<Book>();
books.add(new Book());

books.add(new person());//会发生编译错误,person类型无法转换为Book类型
Book book=book.get(0);
Person person=book.get(0);//编译错误,Book类型无法转换为person类型

标签:语句,总结,Object,person,Book,类型,泛型,MyArrayList
来源: https://blog.csdn.net/qq_44834690/article/details/100930357