20200722方法重写与多态

一.方法重写

1.原因

如果父类继承不能满足子类的需求,可以在子类中对父类的同名方法进行重写,以符合需求

2.重写

子类根据父类继承方法进行重新编写;
重写时,可以用super。方法的方式来保留父类的方法;
构造方法不能被重写。

3.方法重写规则(子类继承父类时)

  • 方法名相同
  • 参数列表要相同
  • 返回值类型相同或者是其子类
  • 返回值类型相同或者是其子类
  • 抛出的异常不可以多于父类

4.方法重写和方法重载

方法重写
位置:子类;
方法名:相同;
参数表:相同;
返回值:相同或者是其子类;
访问修饰符:不能比父类更严格

方法重载
位置:同类;
方法名:相同;
参数表:不同;
返回值:无关;
访问修饰符:无关

二.Object类

1.Object类是所有类的父类

2.Object类被子类经常重写的方法

  • toString():返回当前对象本身的有关信息,按字符串对象返回
  • equals():比较两个对象是否是同一个对象,是则返回true
  • hashCode():返回该对象的哈希代码值
  • getClass():获取当前对象所属的类信息,返回Class对象

三.多态

1.含义

意味着一个特定类型的变量可以引用不同类型的对象,并且能自动调用引用对象的方法。方法重写是多态的基础

2.抽象方法

本身实例没有任何意义public abstract void print();

  • 抽象方法没有方法体
  • 抽象方法必须在抽象类里
  • 抽象方法必须在子类中被实现,除非子类是抽象类

3.向上转型

子类向父类转型:<父类型><引用变量名>=new<子类型>();

  • 系统自动进行类型转换
  • 通过父类引用变量调用的方法是子类覆盖或者继承了父类的方法,不是父类的方法
  • 此时父类引用变量无法调用子类特有的方法

4.向下转型

父类类型转换成子类类型<子类型><引用变量名>=(<子类型>)<父类型的引用变量>();
instanceof运算符:进行类型判断,对象的类型必须和instanceof后面的参数所指定的类在继承上有上下级关系

5.多态的应用

  • 使用父类作为方法的形参
  • 使用父类作为方法的返回值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值