java 多态

java 多态

什么是多态?

个人描述
就比之人,人之下,有男人,女人,好人,坏人,天才,蠢才,他们既有人之共性,又有他自己的特点。你叫不同的人去做同样的事,结果自然会不尽相同。

菜鸟学院的多态描述
在这里插入图片描述
在这里插入图片描述

实例
抽象类

package polymorphic;

public abstract class Printer {
    //打印
    abstract void printer();
}

彩色打印机

package polymorphic;

public class CSPrinter extends Printer {
    @Override
    void printer() {
        System.out.println("打印效果:彩色");
    }
}

黑白打印机

package polymorphic;

public class HBPrinter extends Printer {
    @Override
    void printer() {
        System.out.println("打印效果:黑白");    }
}

测试

package polymorphic;

public class PrinterManager {
    public static void main(String[] args) {
        Printer printer=new CSPrinter();
        printer(printer);
        printer(new HBPrinter());
    }

    static void printer(Printer printer) {
        printer.printer();
    }
}

结果
在这里插入图片描述
分析
如上所示,传入的对象不同,所产生的打印效果也不同,这就是多态。

多态存在的三个必要条件
  • 继承
    java 继承,存在继承才有父类子类的区别。
  • 重写
    Java 重写(Override),通常、子类需要通过重写具体实现父类的方法。
  • 父类引用指向子类对象
    一个父类类型的变量,持有的是一个指向其子类对象的引用。
    如下:Father(父类) 类型的引用指向的是 Son(子类) 的实例(对象)
 Father son=new Son();
向上转型

子类对象可以自动的转为父类类型。

 		Father son=new Son();
向下转型

向上转型是向下转型的必要条件(只有上了山,才有下山这一说)

 		//向上转型
        Father son=new Son();
        //向下转型
        if (son instanceof Son){
            Son son1= (Son) son;
        }

instanceof 关键字 : son 对象 是否是 Son 类的一个实例。

  • 为防止类型强转失败,通常需要使用该关键字进行类型判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值