【Java面向对象】方法重载,方法重写你还傻傻弄不清吗?

简介: 【Java面向对象】方法重载,方法重写你还傻傻弄不清吗?

什么是方法重载


A: 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。


举个例子

public class Overlode {
    //test方法第一次重载,没有参数
    void test1() {
        System.out.println("无参方法");
    }
    //test方法第二次重载,含一个整形参数
    void test2(int a) {
        System.out.println("一个参数方法" );
    }
    //test方法第三次重载,含两个整形参数
    void test3(int a,int b) {
        System.out.println("两个参数方法" );
    }
}


方法重载的好处


1)减轻了起名的麻烦


2)减轻了记名的麻烦


注意事项与使用细节


当使用方法重载时,要注意满足以下三点条件。


1)方法名必须相同


2)形参类型或个数或顺序,至少有一项不同


3)返回类型没有要求


什么是方法重写


A: 简单来说,方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称,返回类型,参数一样,那么我们就说子类的这个方法覆盖了父类的方法。


举个例子

public class Animal {
    public void cry() {
        System.out.println("动物叫!");
    }
}
public class Dog extends Animal {
    public void cry() {
        System.out.println("狗叫!");
    }
}


在这个例子中, Dog是Animal的子类,Dog的cry方法和Animal的cry方法的名称,返回类型,参数一样,这时我们就可以说Dog的cry方法,重写了Animal的cry方法。


注意事项与使用细节


当使用方法重写时,要注意满足以下三点条件。


1)子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一致


2)子类方法的返回类型和父类方法返回类型一样


3)子类方法不能缩小父类方法的访问权限


方法重载与方法重写的区别


image.png


方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。学好了重载和重写,才能更好的掌握多态! 方法的重写(Overriding)和重载(Overloading)是java多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。


总结


1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载。

2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写。

3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。


相关文章
|
11天前
|
Java 数据安全/隐私保护
09 Java面向对象三大特征(概述)
09 Java面向对象三大特征(概述)
29 4
|
11天前
|
存储 Java 程序员
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
08 Java面向对象基础(对象与类+实例变量与方法+构造方法+this关键字)
33 4
|
5天前
|
存储 SQL 搜索推荐
一天十道Java面试题----第一天(面向对象-------》ArrayList和LinkedList)
这篇文章是关于Java面试的笔记,涵盖了面向对象、JDK/JRE/JVM的区别、`==`和`equals`、`final`关键字、`String`、`StringBuffer`和`StringBuilder`的区别、重载与重写、接口与抽象类、`List`与`Set`、`hashcode`与`equals`以及`ArrayList`和`LinkedList`的对比等十个主题。
|
19天前
|
存储 Java 开发者
Java编程实践:探索面向对象设计原则
【7月更文挑战第31天】在Java的世界中,面向对象设计(OOP)原则是构建健壮、可维护和可扩展软件的基石。本文将深入探讨这些核心原则,并通过实际代码示例揭示其应用之美。
17 0
|
1月前
|
Java
Java面向对象(二)
Java面向对象(二)
|
1月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
|
1月前
|
Java
Java面向对象 ( 多态 | final关键字 | 接口 )
Java面向对象 ( 多态 | final关键字 | 接口 )
|
1月前
|
Java
Java面向对象 ( 类与对象 | 构造方法 | 方法的重载 )
Java面向对象 ( 类与对象 | 构造方法 | 方法的重载 )
|
1月前
|
Java 关系型数据库 开发者
Java中的面向对象设计原则与实践
Java中的面向对象设计原则与实践
|
1月前
|
Java
Java面向对象知识总结+思维导图
Java面向对象知识总结+思维导图