Java 多态是面向对象编程中的一个核心概念,它允许对象在运行时表现出不同的行为。多态性主要通过继承和接口实现,使得一个引用变量在不同情况下可以指向不同类的对象,并调用这些对象的方法。
多态的优点
消除类型之间的耦合关系
可替换性
可扩充性
接口性
灵活性
简化性
编译时多态(静态多态):通过方法重载实现
class Example {
void display(int a) {
System.out.println("Integer: " + a);
}
void display(String a) {
System.out.println("String: " + a);
}
}
public class Test {
public static void main(String[] args) {
Example obj = new Example();
obj.display(10); // 调用 display(int a)
obj.display("Hello"); // 调用 display(String a)
}
}
运行时多态(动态多态):通过方法重写和接口实现。
方法重写是指子类重新定义父类中已经定义过的方法。运行时多态允许程序在运行时根据对象的实际类型来调用相应的重写方法。
class Animal {
void sound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("Cat meows");
}
}
public class Test {
public static void main(String[] args) {
Animal myDog = new Dog(); // 父类引用指向子类对象
Animal myCat = new Cat(); // 父类引用指向子类对象
myDog.sound(); // 输出: Dog barks
myCat.sound(); // 输出: Cat meows
}
}
接口实现:接口提供了一种实现多态的强大机制。一个类可以实现多个接口,并通过接口引用来调用实现类的方法。
interface Animal {
void sound();
}
class Dog implements Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
class Cat implements Animal {
@Override
public void sound() {
System.out.println("Cat meows");
}
}
public class Test {
public static void main(String[] args) {
Animal myDog = new Dog(); // 接口引用指向实现类对象
Animal myCat = new Cat(); // 接口引用指向实现类对象
myDog.sound(); // 输出: Dog barks
myCat.sound(); // 输出: Cat meows
}
}
标签:sound,Java,void,多态,Cat,学习,Animal,class From: https://blog.csdn.net/xuann/article/details/144070395