Java 是一门面向对象编程语言,其中重载、继承、重写和多态都是面向对象编程(OOP)中的核心概念。
重载(Overloading)
重载是指在同一个类中使用相同的方法名,但是参数类型和数量不同。重载可以让我们使用同一个方法名实现不同的功能。
下面是一个求和函数的重载示例:
public class Sum {
public static int getSum(int a, int b) {
return a + b;
}
public static int getSum(double a, double b) {
return (int)(a + b);
}
}
以上代码中,我们定义了两个名为 getSum
的方法,一个参数类型为 int
,另一个为 double
。这样就可以通过调用不同类型的 getSum
方法来实现不同类型数值的求和。
继承(Inheritance)
继承是指子类从父类中继承属性和方法。子类可以重新定义或添加特定于自己的属性和方法。
下面是一个继承示例:
public class Animal {
public void eat() {
System.out.println("动物在吃饭");
}
}
public class Dog extends Animal {
public void bark() {
System.out.println("汪汪汪");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.eat();
dog.eat();
dog.bark();
}
}
以上代码中,我们定义了一个父类 Animal
和一个子类 Dog
,Dog
继承了 Animal
的 eat()
方法,并添加了 bark()
方法。通过创建 Dog
实例,可以使用 Dog
的 bark()
方法,同时也可以使用从父类 Animal
继承而来的 eat()
方法。
重写(Overriding)
重写是指子类覆盖父类中的方法。通过重写,子类可以改变从父类继承而来的方法的实现方式。
下面是一个重写示例:
public class Animal {
public void eat() {
System.out.println("动物在吃饭");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫在吃鱼");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Animal();
Cat cat = new Cat();
animal.eat();
cat.eat();
}
}
以上代码中,我们定义了一个父类 Animal
和一个子类 Cat
,Cat
重写了父类 Animal
的 eat()
方法,并改变了它们的实现方式。通过创建 Cat
实例,可以看到 Cat
使用自己的实现方式覆盖了从父类继承而来的 eat()
方法。
多态(Polymorphism)
多态是指同样的方法或对象,在不同情况下有不同的行为。Java 中的多态基于继承和重写的特性实现。
下面是一个多态示例:
public class Animal {
public void eat() {
System.out.println("动物在吃饭");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫在吃鱼");
}
}
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗在吃骨头");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Cat();
Animal animal2 = new Dog();
animal1.eat();
animal2.eat();
}
}
以上代码中,我们定义了一个 Animal 父类和两个子类 Cat 和 Dog,并相应地重写了父类的 eat()
方法。在 Main
类中,我们创建 Cat
和 Dog
实例,并用 Animal 类型的变量指向它们。这样就可以在运行时决定使用哪个子类的方法。在我们的示例中,通过使用 Cat
和 Dog
实例分别调用父类的 eat()
方法,可以看到根据实际的具体类类型,输出了不同的结果。
综上所述,重载、继承、重写和多态是 Java 面向对象编程的核心概念。理解它们的区别和用法,可以让程序员更好地设计和编写高质量的 Java 代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中重载,继承,重写和多态的区别 - Python技术站