首页后端开发JAVAjava重载重写和覆盖

java重载重写和覆盖

时间2023-11-30 03:23:03发布访客分类JAVA浏览473
导读:Java是一种面向对象的编程语言,提供了重载、重写和覆盖等机制,这些机制可以让程序员更好地利用Java的特性,编写高效的代码。重载(Overloading)是指同一类中的多个方法,名称相同但参数列表不同。例如:public void pri...

Java是一种面向对象的编程语言,提供了重载、重写和覆盖等机制,这些机制可以让程序员更好地利用Java的特性,编写高效的代码。

重载(Overloading)是指同一类中的多个方法,名称相同但参数列表不同。例如:

public void print(int i) {
    System.out.println(i);
}
public void print(String s) {
    System.out.println(s);
}

重载方法可以根据传递的参数类型和数量来确定要调用的方法。在上面的例子中,我们可以分别调用print(int i)和print(String s)方法。

重写(Overriding)是指在子类中重新定义父类中已有的方法。子类中的方法有与父类中的方法相同的名称、参数列表和返回类型。例如:

class Animal {
public void makeSound() {
    System.out.println("An animal is making sound.");
}
}
class Cat extends Animal {
public void makeSound() {
    System.out.println("A cat is meowing.");
}
}

在上面的例子中,我们定义了一个Animal类和一个Cat类。Cat类继承了Animal类,并重写了它的makeSound()方法。当我们使用Cat类的实例调用makeSound()方法时,输出的是“ A cat is meowing.”而不是“An animal is making sound.”。

覆盖(Overriding)是指在子类中定义一个与父类中同名的方法,参数列表和返回类型也相同,但访问修饰符可以不同。例如:

class Bird {
protected void fly() {
    System.out.println("A bird is flying.");
}
}
class Penguin extends Bird {
public void fly() {
    System.out.println("A penguin cannot fly.");
}
}
    

在上面的例子中,我们定义了一个Bird类和一个Penguin类。Penguin类继承了Bird类,并覆盖了它的fly()方法。我们可以看到,Penguin类中的fly()方法的访问修饰符为public,而Bird类中的fly()方法的访问修饰符为protected。这样可以使得Penguin类的fly()方法在其他类中可以访问。

在Java中,重载、重写和覆盖都是Java面向对象编程的重要机制。这些机制可以让程序员更好地利用Java的特性,编写高效的代码。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: java重载重写和覆盖
本文地址: https://pptw.com/jishu/561326.html
php 导出查询出来的数据库 php 将html转换成数组

游客 回复需填写必要信息