【JAVA学习笔记】方法的重写和super关键字的使用

提示:本文章用途只为学习,部分代码来源于网络,如有侵权,请联系私信博主删除


提示:以下是本篇文章正文内容,下面案例可供参考

一、方法的重写

  • 方法的重写:子类继承父类以后,可以对父类中同名同参的方法,进行覆盖操作。

1.重写,子类继承父类以后,可以对父类中同名参数的方法,进行覆盖操作

2.应用:重写以后,对创建子类对象以后,通过子类对象调用父类中的同名参数时,实际执行的时子类重写父类的方法

3.重写的规定:

  •       方法的声明,权限修饰符 返回值类型 方法名(形参列表)throws 异常的类型{
    
  •                    方法体
    
  •            约定俗称:子类中的叫重写的方法,父类中的叫被重写的方法
    
  •           ① 子类重写的方法的方法名和形参列表和父类被重写的方法的方法名和形参列表相同
    
  •           ② 子类重写的方法的权限修饰符不小于父类被重新写的权限修饰符
    
  •                  特殊情况:子类不嫩给重写父类中声明为private的方法
    
  •           ③ 返回值类型:
    
  •              如果父类中被重写的方法返回值类型是void,那么子类的方法的返回值类型只能是void
    
  •               父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型是A类或者A的子类
    
  •               父类被重写的方法的返回值类型是基本数据类型,则子类重写的方法的返回值类型必须是相同的基本数据类型
    
  •                       }
    
  •           ④ 子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型
    

面试题:区分方法的重载与重写

super关键字的使用
1.super可以理解为:父类的
2.super可以用来调用:属性,方法,构造器
3.super的使用:
3.1我们可以在子类或者构造器中,通过使用”super.属性“或者”super.方法“的方式,显式的调用父类中声明的属性或方法,但是,通常情况下,我们习惯省略”super“
3.2特殊情况,当父类和子类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用”super.属性“的方式,则表明调用的是父类中声明的属性。
3.3(方法)特殊情况:当子类重写了父类中调用的方法以后,我们想在子类的方法中调用父类中被重写的方法时,必须显式的使用super.方法的方式,则表用调用的时父类中声明的方法
3.4(构造器)我们可以在子类的构造器中显式的使用”super(形参列表)“的方式,调用父类中声明的指定构造器
”super(形参列表)“的使用,必须声明在子类构造器的首行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在构造函数和方法使用super关键字: 在Javasuper关键字用于调用父类的构造函数或方法。当子类构造函数或方法需要继承父类的某些属性或方法时,可以使用super关键字来调用父类相应的构造函数或方法。 示例代码: ``` public class Animal { String name; int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void eat() { System.out.println(name + " is eating."); } } public class Dog extends Animal { public Dog(String name, int age) { super(name, age); } @Override public void eat() { super.eat(); System.out.println(name + " is eating bones."); } } public class Main { public static void main(String[] args) { Dog myDog = new Dog("Buddy", 3); myDog.eat(); } } ``` 在上面的示例代码,Dog类继承了Animal类,并通过super关键字调用了父类Animal的构造函数。在子类重写了父类的eat()方法,并在方法使用super关键字来调用父类的eat()方法,然后再添加一行输出语句。 重载方法: 在Java方法重载是指在同一个类,有多个方法名相同但参数列表不同的方法方法的参数列表包括参数的类型、数量和顺序,只要有一个不同,就可以认为是不同的方法。 示例代码: ``` public class Calculator { public int add(int x, int y) { return x + y; } public double add(double x, double y) { return x + y; } public int add(int x, int y, int z) { return x + y + z; } } public class Main { public static void main(String[] args) { Calculator myCalculator = new Calculator(); System.out.println(myCalculator.add(1, 2)); System.out.println(myCalculator.add(2.5, 3.5)); System.out.println(myCalculator.add(1, 2, 3)); } } ``` 在上面的示例代码,Calculator类定义了三个add()方法,分别接受不同数量和类型的参数。在Main类创建了一个Calculator对象,并分别调用了三个不同的add()方法重写方法: 在Java方法重写是指在子类定义一个与父类同名、同参数列表、同返回类型的方法,并且这个方法的访问修饰符不能比父类的更严格。 示例代码: ``` public class Animal { public void move() { System.out.println("Animal is moving."); } } public class Dog extends Animal { @Override public void move() { System.out.println("Dog is running."); } } public class Main { public static void main(String[] args) { Animal myAnimal = new Animal(); Dog myDog = new Dog(); myAnimal.move(); myDog.move(); } } ``` 在上面的示例代码,Animal类定义了一个move()方法,用于显示动物在移动。Dog类继承了Animal类,并重写了move()方法,用于显示狗在奔跑。在Main类创建了一个Animal对象和一个Dog对象,并分别调用了它们的move()方法,输出结果分别为“Animal is moving.”和“Dog is running.”。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何不忆江南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值