java 多态
时间: 2023-07-19 07:09:45 浏览: 107
Java——多态
Java中的多态是指同一类型的对象在不同的情况下可以表现出不同的行为。在Java中实现多态需要使用继承、接口、重写和重载等技术。
具体来说,Java中的多态可以通过以下三种方式实现:
1. 继承:子类继承父类,可以使用父类的方法和属性,同时可以重写父类的方法来实现不同的行为。通过父类引用指向子类对象,就可以实现多态。例如:
```
class Animal {
public void makeSound() {
System.out.println("Animal is making sound.");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog is barking.");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.makeSound(); // 调用的是Dog类的makeSound方法
}
}
```
2. 接口:定义一个接口,并让多个类实现该接口,可以实现不同的行为。通过接口引用指向实现该接口的对象,就可以实现多态。例如:
```
interface Shape {
void draw();
}
class Circle implements Shape {
@Override
public void draw() {
System.out.println("Drawing a circle.");
}
}
class Square implements Shape {
@Override
public void draw() {
System.out.println("Drawing a square.");
}
}
public class Main {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Square();
shape1.draw(); // 调用的是Circle类的draw方法
shape2.draw(); // 调用的是Square类的draw方法
}
}
```
3. 重载:在同一个类中定义多个同名方法,但参数列表不同,可以实现不同的行为。通过调用不同的重载方法,就可以实现多态。例如:
```
class Calculator {
public int add(int x, int y) {
return x + y;
}
public double add(double x, double y) {
return x + y;
}
}
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
System.out.println(calculator.add(1, 2)); // 调用的是int类型的add方法
System.out.println(calculator.add(1.0, 2.0)); // 调用的是double类型的add方法
}
}
```
通过继承、接口和重载等方式实现多态,可以使代码更加灵活和可扩展。
阅读全文