码迷,mamicode.com
首页 > 编程语言 > 详细

Java面向对象---多态

时间:2017-10-03 23:27:32      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:print   子类   强制类型转换   调用   str   关键字   一个   dem   xtend   

多态的体现

1、方法的重载与重写

2、对象的多态性

对象的多态性

向上转型

程序会自动完成

         父类  父类对象 = 子类实例

向下转型

强制类型转换(向下转型必须要先向上转型,再向下转型

         子类  子类对象 = (子类)父类实例

         Eg:A a=new B;B b=(B)a;

多态性的使用

一个简单的例子:

class A {
  public void tell(){}      
}

class B extends A {
  public void tellB(){}
}

class C extends A {
  public void tellC(){}
}

public class Demo {

  public static void main(String args[]){
    say(new B());
    say(new C());
  }

  public void say(A a) {
    a.tell();
  }
}

 

说明:如果不使用多态,则需要重载say方法,有几个对象调用就需要重载几次。而这样的写的话,则会产生更过的冗余代码。Demo代码如下:

public class Demo{
  
public static void main(String args[]){     say(new B());     say(new C());   }   public void say(B b){     b.tell();   }   public void say(C c){     c.tell();   } }

 

instanceof关键字

作用

判断一个实例是否是一个类的对象,返回boolean

示例代码如下:

A a1 = new A();
System.out.printeln(a1 instanceof A);
System.out.printeln(a1 instanceof B);
A a2 = new B();
System.out.printeln(a2 instanceof A);
System.out.printeln(a2 instanceof B);

执行结果:
true
false
true
true

Java面向对象---多态

标签:print   子类   强制类型转换   调用   str   关键字   一个   dem   xtend   

原文地址:http://www.cnblogs.com/xiaobaizhiqian/p/7624662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!