方法的重载、重写、super 、this

方法的重载、重写、super 、this

1. 方法重载与方法复写的区别

区别 方法重载 方法复写
英文单词 Overloading Override
概念 方法名称相同,参数的个数或者类型不同 方法名称相同,参数的个数和类型相同,方法的访问权限不能更严格
使用范围 发生在同一个类中 发生在继承关系中,是由子类进行复写
 
2.  super与this的比较
比较 super this
使用范围 是由子类访问父类中的内容 是直接访问本类中的内容
访问属性时的格式 super.父类属性, 如果属性没有被复写,则也可以不写super this.本类属性
访问方法时的格式 super.父类方法(),如果父类方法没有被复写,则可以不写super也表示调用父类中的方法 this.本类方法(),可以不写this,也表示调用本类的方法
访问构造函数时的格式 super()是访问父类中的构造方法,必须放在首行 this()是访问本类中的其他构造方法(注意留入口!),必须放在首行
特殊点 this表示当前对象,当前操作方法的对象就为当前对象

复写与重载

其实 之前学习C++的时候 重载这一特性掌握得还算不错,JAVA中重写这个功能有点强势 但是初学的时候还是觉得相当懵逼的

JAVA中重载和复写有什么区别和相同呢,这其中关系到继承的关系。
1.重载是在一个类中,多个方法的方法名相同,但因为参数不一样,处理也不一样,这种形式就叫重载。
2.复写则是发生在父子类中,子类中得方法和参数和父类一样,但方法的内容不一样,这种形式就叫复写。

重载:

public class Person {
    String name="wood";
    int age=12;

    //一个类中方法名一样,因为参数不一样而执行不同的方法叫重载
    void out(){
        System.out.println("第一个方法!");
    }

    void out(String name){
        System.out.println("第二个"+this.name+"---"+name);
    }

}

复写:


public class Strudent extends Person {

    //复写的意思是在子类中,方法和参数都和父类一样,但修改方法的内容。
    void out(){
    //super的用处在于减少重复代码,此处使用表示调用父类的out方法。
        super.out();
        System.out.println("复写的方法!");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37457202/article/details/80594015
今日推荐