Java面向对象(Object Oriented Programming)04

多态(polymorphism):

使用多态优化设计;多态可以减少类中代码量,可以提高代码的可扩展性和可维护性

优点:1. 消除类型之间的耦合关系

2. 可替换性

3. 可扩充性

4. 接口性

5. 灵活性

6. 简化性

生活中同一种事物,由于条件不同,产生的结果也不同。

程序中的多态:同一个引用类型,使用不同的实例而执行不同操作

多态存在的三个必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象:Person p = new Child();
实现多态的两种方式
使用父类作为方法形参实现多态
使用父类作为方法返回值实现多态
程序的最终状态只有在执行过程中才被决定而非在编译期间就 决定了。这对于大型系统来说能提高系统的灵活性和扩展性。
引用变量的两种类型:
编译时类型(模糊一点,一般是一个父类) 由声明时的类型决定。
运行时类型(运行时,具体是哪个子类就是哪个子类) 由实际对应的对象类型决定。

instanceof  运算符

对象 instanceof 类或接口、instanceof通常和强制类型转换结合使用。

 作用:用来判断某个对象是否属于某种数据类型。

  注意: 返回类型为布尔类型

​
       Father f1=new Son();
        Father f2=new Zi();
        if(f1 instanceof Son){
            System.out.println("f1是Son的类型");
        }
        else{
            System.out.println("f1是Zi的类型");
        }

​
引用数据类型的类型转换:
向上转型——子类转换为父类,自动进行类型转换、子类转换为父类:自动转换
上转型对象不能操作子类新增的成员变量和方法。
上转型对象可以操作子类继承或重写的成员变量和方法
 如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写 方法。
向下转型——父类转换为子类,结合instanceof运算符进行强制类型转换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值