Java基础知识之重载,重写与多态

重载(overload):

方法的重载是指一个类中可以定义有相同名字,但参数不同的多个方法。调用时,会根据不通的参数表选择对应的方法,即函数名一样,返回值类型一样;但参数不一样,参数类型不一样或者参数个数不一样。

构造方法也可以重载,具体调用根据参数列表进行调用。

重写(override):

  1. 在子类中可以根据需要对从基类中继承来的方法进行重写
  2. 重写方法必须和被重写方法有相同方法名,参数列表和返回类型
  3. 重写方法不能使用比被重写方法更严格的访问权限
  4. 重写时最好直接将基类方法拷贝过来
  5. 重写的时候要抛同基类一样的异常,或者不抛异常
  6. 声明为static和final的方法不能被重写

多态

  • 多态实现的三个前提:
  1. 存在继承关系
  2. 子类重新父类的方法
  3. 父类数据类型的引用指向子类对象 (栈内存里的父类引用指向堆内存里的子类对象)
  • 多态成员访问特点:只有非静态的成员方法,编译看左边(父类),运行看右边(子类)
  1. 成员变量 :编译看左边(父类),运行看左边(父类)(多态中的向上转型)
  2. 成员方法:编译看左边(父类),运行看右边(子类)。动态绑定
  3. 静态方法:编译看左边(父类),运行看左边(父类)  (静态和类相关,算不上重写,所以,访问还是左边的)
  • 弊端
  1. 不能使用子类特有的成员属性和子类特有的成员方法。
  2. 如何解决:把指向子类对象的父类引用强制类型转变为子类类型(多态中的向下转型)
  • 实际应用
  1. 利用多态声明形式参数,并将创建子类的匿名对象作为实际参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值