您的位置:首页 > 其它

多态

2015-07-01 13:37 381 查看
1、同一方法中,因参数类型不同而导致执行效果不同的现象就是多态。

1.1 父类类型的变量引用一个子类类型的对象 ,父类名 变量=new 子类名();

例:

public class Oper  {
public static void main(String[]args){
Father fa1=new Child();
Father fa2=new Son();
fathershow(fa1);
fathershow(fa2);
}
public static void fathershow(Father fa)
{
fa.show();
}
}
//定义Father接口
interface Father{
void show();  //定义抽象方法
}
//定义Child类实现Father接口
class Child implements Father{
//实现show()方法
public void show(){
System.out.println("hhhh");
}
}
//定义son类实现Father接口
class Son implements Father{
//实现show()方法
public void show(){
System.out.println("heihei");
}
}
1.2、子类对象当做父类类型使用,即上例中的
Father fa1=new Child();
Father fa2=new Son();
将子类对象当作父类使用时不需要任何显式地声明,但是此时不能通过父类变量(即fa1,fa2)去调用子类中的某些方法。

例如:

Child child =new Child();
fathershow(child);
此时,main方法中调用fathershow()时传入了Child类型的对象,而fathershow()的参数类型为Father,这便将子类Child的对象当作父类类型使用

2、关键字instanceof,用于判断一个对象是否为某个类或接口的实例或者子类实例。

语法格式:对象(或者对象引用变量) instanceof 类(接口)

fa instanceof Child


从上概况,多态可以总结为:

1、父类的变量引用指向子类对象;

2、父类的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,不可调用;

3、父类中的某个方法在父类中定义而没被子类重写时,父类的引用才可以调用;

4、父类中定义了某方法,在子类中重写了该方法,那么父类的引用将会调用子类中的该方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: