Java多态

1 多态概述

Java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类的父类(接口)变量赋值。
最终多态体现为:父类引用变量可以指向子类对象。
在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法

2 多态定义格式

父类类型或接口类型 变量 = new 子类对象

3 多态中成员变量特点

  • 编译的时候,参考父类中有没有这个变量,如果有,编译成功,没有编译失败。
  • 运行的时候,运行的是父类的变量值;
  • 编译运行全部看父类;

4 多态中成员函数的特点

  • 编译的时候,参考父类中有没有这个方法,如果有,编译成功,没有则失败;
  • 运行的时候,运行的是子类的重写方法;
  • 编译看父类,运行看子类;

5 比较运算符 instanceof

  • 可以比较引用数据类型;
  • 比较一个引用类型变量是不是这个类型变量;
  • 格式:引用变量 instanceof 类名

6 多态中的转型

  • (向上转型)自动类型提升,将取值范围小的,自动提升为取值范围大的;范围小的,看成是子类;范围大的,看成是父类;

7 多态总结

  • 多态使用前提:(1)有继承或者实现关系;(2)要方法重写;(3)父类引用指向子类对象;
  • 多态的好处:提高了程序的扩展性;
  • 多态的弊端:不能访问子类特有的功能;

8 多态的分类

  • 类的多态
abstract class Fu{
    public abstract void method();
}
class Zi extends Fu{
    public void method(){
    System.out.println("重写父类抽象方法");
}
}
Fu fu = new Zi();
  • 接口的多态
interface Fu{
    public abstract void method();
}
class Zi implements Fu{
    public void method(){
        System.out.println("重写接口抽象方法");
}
}

Fu fu = new Zi();

9 多态调用中,编译看谁,运行看谁

  • 编译都看 = 左边的父类,父类有编译成功,没有编译失败;
  • 运行时,静态方法,运行父类中的静态方法;
  • 运行时,非静态方法,运行子类的重写方法;
  • 成员变量,编译运行全是父类;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值