Java面向对象---多态

Posted H小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象---多态相关的知识,希望对你有一定的参考价值。

多态的体现

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面向对象---多态的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象多态和接口

Java面向对象之多态

java-面向对象的多态性摘要

JAVA面向对象3---多态

Java 基础 ------- 面向对象(四) 多态

Java面向对象 ——多态