首页 > 代码库 > 朔型与多态
朔型与多态
1.朔型
java支持隐式转换,以及显式转换。类型转换也叫做朔型。对象的朔比类型转换复杂多,对象只可以被朔型为:
1.该对象的任何一个父类类型
2.对象所属类实现的接口,虽然接口不可以生成对象,但是接口引用可以指向实现了该接口的子对象
3.或者回到自己所在的类,一个对象被朔型成父类后,还可以被朔型回来
当一个对象被朔型成父类后,他提供的方法会减少,但是当把该对象朔型回来后,他又可以使用自身的方法。从而对象朔型并没有改变他的类型,而是暂时将它当作一般的类型。
如果在朔型前和朔型后的类中提供相同的方法,这种情况下,对于实例来说总是沿着原始类开始向上查找,这个机制将回引发多态性。
2.多态
将一条消息发给对象时,可能并不能知道运行对象具体是什么,但采取的行动是正确的,这种情况叫做多态。多态是指不同类型对相同消息作出不同的反映。如下是一个多态例子
import static java.lang.Math.*; class Shape{ void draw(){}; } class Circle extends Shape{ @Override void draw(){ System.out.println("Drow Circle"); } } class Square extends Shape{ @Override void draw(){ System.out.println("Drow Square"); } } public class Test{ public static void main(String srgs[]){ Shape shape[] = new Shape[5]; for (int i=0;i<5;i++){ int n = (int)(random()*2); if (n == 0){ shape[i] = new Circle(); } else{ shape[i]=new Square(); } } for (int i=0;i<5;i++) shape[i].draw(); } }
朔型与多态
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。