方法的重载与重写
- 一、方法的重载与重写
- 1、回顾方法的定义
- 2、重载的概念
- 3、重写
 
- 二、this关键字
- 1、何为this方法
- 2、使用方法
- (1)在构造方法中指构造器所创建的新对象
- (2) 方法中指调用该方法的对象
- (3) 在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法
 
- 3、注意事项
 
- 三、super关键字
一、方法的重载与重写
1、回顾方法的定义
权限修饰符   返回值声明   方法名称(参数列表){
   方法中封住样的逻辑功能;
   return 返回值【返回值void类型,不用写return】
}
2、重载的概念
(1) 必须同一个类中
 (2) 方法名相同
 (3)方法的参数的个数,顺序或类型不同
 (4) 与方法的修饰符和返回值都没有关系
package com.itheima.springboottest;
import javax.print.DocFlavor;
public class Person {
    String name;
    int age;
    String address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    
    private void myPrint(){
        System.out.println("这里是父类重载方法1");
    }
    private int myPrint(int age,String name){
        System.out.println("这里是父类重载方法1");
        return 1;
    }
    private int myPrint(String name,int age){
        System.out.println("这里是父类重载方法1");
        return 1;
    }
    
}

3、重写
(1) 重写发生在父类无法满足子类需求的时候,需要进行重写
 (2) 重写的注意事项
 ① 重写的方法必须要和父类一模一样(包括返回值类型,方法名,参数列表)
 ② 重写的方法可以使用@Override注解来标识
 ③ 子类中重写的方法的访问权限不能低于父类中方法的访问权限
 private<默认<protectde<public
package com.itheima.springboottest;
public class Family{
    protected  void  myPrint(){
        System.out.println("我是父类方法");
    }
}
class Firstson extends Family{
    public void  myPrint(){
        System.out.println("我是子类重写父类方法");
    }
}
class FamilyTest {
    public static void main(String[] args){
        Firstson son = new Firstson();
        son.myPrint();
    }
}

二、this关键字
1、何为this方法
JAVA为了解决变量的命名冲突和不确定性问题,引入关键字this代表所在方法的当前对象的引用;
2、使用方法
(1)在构造方法中指构造器所创建的新对象
public class B{
   A a;
   public B(A a){
      this a = a;
   }
}
(2) 方法中指调用该方法的对象
public class Baby{
   public void wakeup(){
      System.out.println("宝宝醒了");
   }
   public void eat(){
      this.wakeup();
      System.out.println("宝宝醒了");
   }
   
}
(3) 在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法
public void setName(String name){
   this.name=name;
}
3、注意事项
this只能在类的非静态方法中使用,静态方法和静态代码块中绝对不能出现this
 static修饰的方法在类加载中就已经存在了,单数对象在创建时才会在内存中生成
三、super关键字
1、 super是存在于子类方法中,用于指向子类对象中的父类对象,可以访问父类的属性,函数以及构造函数
 2、 子父类存在着同名的成员(包括变量和方法)时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员
 3、 默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法
package com.itheima.springboottest;
public class Family{
    protected  void  myPrint(){
        System.out.println("我是父类方法");
    }
}
class Firstson extends Family{
    public void  myPrint(){
        super.myPrint();
        System.out.println("我是子类重写父类方法");
    }
}
class FamilyTest {
    public static void main(String[] args){
        Firstson son = new Firstson();
        son.myPrint();
    }
}











![# [0705] Task06 DDPG 算法、PPO 算法、SAC 算法【理论 only】](https://i-blog.csdnimg.cn/direct/2c60a621145c4713b5117f7585071db1.png)








