泛型和多态的关系
答案:3 悬赏:40 手机版
解决时间 2021-04-06 13:10
- 提问者网友:姑娘长的好罪过
- 2021-04-05 23:50
泛型和多态的关系
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-04-05 23:59
泛型和多态比较容易混淆, 简单来说:
泛型就是类型参数化, 好处是编译器会检查参数类型.
多态就是多个类由继承(实现接口)得到的一致外观, 好处是简化代码, 隔绝修改
实际上泛型和多态没有直接关系, 使用泛型在代码中就能按照指定类型的外观操作对象. 比较常用的泛型类型就是List和Map, 说个简单的例子吧:
List list = ....; //具体类型, 就跟多态没什么关系了
for (String str : list) {
System.out.println(str.substring(1));
}
List list = ...; //地球上但凡讲OO的都拿这个说事儿... 成员就是小猫小狗狮子老虎什么的
for (Animal animal : list) {
animal.say(); //喵, 汪....., 多态
}
泛型就是类型参数化, 好处是编译器会检查参数类型.
多态就是多个类由继承(实现接口)得到的一致外观, 好处是简化代码, 隔绝修改
实际上泛型和多态没有直接关系, 使用泛型在代码中就能按照指定类型的外观操作对象. 比较常用的泛型类型就是List
List
for (String str : list) {
System.out.println(str.substring(1));
}
List list = ...; //地球上但凡讲OO的都拿这个说事儿... 成员就是小猫小狗狮子老虎什么的
for (Animal animal : list) {
animal.say(); //喵, 汪....., 多态
}
全部回答
- 1楼网友:一把行者刀
- 2021-04-06 00:59
两者没有关系!
泛型是java1.5之后引入的一个特性,可以用限制传入参数的类型,比如:ArrayList<String> a=new ArrayList<String>();那a中就只能就能放入String 类型的字符串!
多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。比如方法的重载和覆写!
泛型是java1.5之后引入的一个特性,可以用限制传入参数的类型,比如:ArrayList<String> a=new ArrayList<String>();那a中就只能就能放入String 类型的字符串!
多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。比如方法的重载和覆写!
- 2楼网友:刀戟声无边
- 2021-04-06 00:40
多态可以分为编译时多态和运行时多态,泛型是对类型的抽象,属于编译时多态。
比如说下面的私有字段x, 它的数据类型在编译的时候是动态决定的,具有多态性。
class A<T>
{
private T x;
}
A<string> a = new A<string>();
多态还可以分为:行为多态和属性多态。下面的p在给它赋值前是不知道它的性别的,在给它赋不同的值的时候就表现出属性多态了。如此同时,也具有了行为的多态, Walk().男人和女人走路的方式是不一样的,所以是多态了。
基类: Class Person, public virtual method Walk() {}
子类: Man, Woman
Person p = new Man();
Person p = new Woman();
比如说下面的私有字段x, 它的数据类型在编译的时候是动态决定的,具有多态性。
class A<T>
{
private T x;
}
A<string> a = new A<string>();
多态还可以分为:行为多态和属性多态。下面的p在给它赋值前是不知道它的性别的,在给它赋不同的值的时候就表现出属性多态了。如此同时,也具有了行为的多态, Walk().男人和女人走路的方式是不一样的,所以是多态了。
基类: Class Person, public virtual method Walk() {}
子类: Man, Woman
Person p = new Man();
Person p = new Woman();
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯