(十二)方法的重写与重载、final关键字

本文详细介绍了Java中方法的重写(overwrite)与重载(overload)的区别,包括方法名、参数列表、返回值类型、可见范围和异常处理的要求。此外,还讲解了final关键字的使用,它可以修饰类、方法和变量,以及在继承和方法重写中的限制。最后,文章提到了类加载顺序和双亲委托机制,并提供了相关的编程练习和问题解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习内容

复习

非静态方法需要创建对象才能调用。

this代表当前对象的引用。

  1. 代码块
    静态代码块属于类,只加载一次。
    构造代码块,创建一次执行一次。
  2. 继承
    一个类只能继承另外一个类
    子类只能继承父类中非私有的代码
    如果子类中变量名与父类中相同,只调用子类中变量。
  3. 类的加载顺序
    父类静态代码》子类中静态代码》父类成员代码》父类构造方法》子类中成员代码》子类构造方法。
    创建对象一定会调用父类中的构造器,
    默认会调用父类中的无参构造器;
    如果父类没有无参构造器,需要开发人员手动调用。

this调用本类中的

Super.xxx调用父类,只能访问父类中非私有的。
(构造器中第一行)
Super();父类中的构造器。
This();

方法重写与重载的区别

方法的重写overwrite

子类覆盖父类方法 方法重写

  1. 方法名发生在子父类之间;
  2. 参数列表必须一样,方法名一样。
  3. 返回值类型必须一模一样。
  4. 可见范围只能大或者相同,不能小。
  5. 抛出的异常只能一样或者比父类中异常小。

方法的重载overload

  1. 发生在一个类中
  2. 方法名相同
  3. 与返回值无关
  4. 与参数列表有关

final关键字

final能修饰 类 变量 方法
final修饰的类只能继承,不能够被继承
final修饰的方法不能够重写
final修饰的变量只能赋值一次,一定要手动赋值,默认值不算。

双亲委托机制

jvm首先会到jdk里面看有没有这一个类,如果有编译报错,没有就编译通过。
如果说自己定义的类与jdk里面的类重复,就会覆盖,不重复,不覆盖,全类名最好不要与jdk冲突。

练习

  1. 请总结:方法重载和方法重写的区别
    答:
    • )方法的重写overwrite 子类覆盖父类方法 方法重写
      1.方法名发生在子父类之间;
      2.参数列表必须一样,方法名一样。
      3.返回值类型必须一模一样。
      4.可见范围只能大或者相同,不能小。
      5.抛出的异常只能一样或者比父类中异常小。
    • )方法的重载overload
      1.发生在一个类中
      2.方法名相同
      3.与返回值无关
      4.与参数列表有关
  2. 有一个类A,有以下两个构造方法
    public A(){}
    public A(){
    super();
    }
    上述两个构造器有没有区别,为什么?
    答:基本上没有区别。因为super();调用的是父类的无参构造方法,而系统会默认补一个super()。
  3. 阅读代码题
    class Father {
         
         
    	public int n;
    }
    public class Son extends Father{
         
         
    	public int n = 22; //n=22
    	public void show
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值