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