在Java中,继承与多态是面向对象编程的核心概念之一。通过继承,子类可以从父类继承属性和方法,并且可以通过多态实现对不同对象的统一处理。
1. 子类与父类
在Java中,子类通过extends关键字继承父类。子类继承了父类的属性和方法,可以直接使用父类的公共成员。
// 父类
class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
// 子类
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void bark() {
System.out.println(name + " is barking.");
}
}
在上面的例子中,Dog类继承了Animal类,所以可以直接调用name属性和eat()方法。
2.方法的重写与重载
2.1方法的重写
方法的重写是指子类重新定义了父类的方法,方法名、参数列表和返回类型必须相同。子类中的方法会覆盖父类中的方法。
// 父类
class Animal {
public void makeSound() {
System.out.println("Animal makes a sound.");
}
}
// 子类
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks.");
}
}
在上面的例子中,Dog类重写了Animal类的makeSound()方法。
2.2方法的重载
方法的重载是指在同一个类中,方法名相同但参数列表不同的情况。重载方法可以有不同的参数个数、类型或顺序。
class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
在上面的例子中,Calculator类有两个add()方法,一个接受两个整数参数,另一个接受两个double参数。
3.向上转型与向下转型
3.1向上转型
向上转型是指将子类对象转换为父类类型。这样做可以使得父类引用指向子类对象,实现多态。
在上面的例子中,Dog对象被向上转型为Animal类型。
3.2向下转型
向下转型是指将父类对象转换为子类类型。在向上转型后,如果需要使用子类特有的方法,可以将父类对象强制转换为子类类型。
Animal animal = new Dog("Buddy");
Dog dog = (Dog) animal;
dog.bark();
在上面的例子中,Animal对象被向下转型为Dog类型,以便调用bark()方法。
4.总结
Java中的继承与多态是面向对象编程的基础,通过继承可以实现代码的重用,而多态则使得代码更加灵活和可扩展。掌握继承与多态的概念和使用方法对于Java程序员来说至关重要。