在Java中,构造函数(Constructor)是一种特殊的方法,用于初始化对象。构造函数的名称与类名相同,没有返回类型。构造函数可以重载,即可以有多个构造函数,但参数列表必须不同。
继承(Inheritance)是面向对象编程的一个重要特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。继承的主要目的是为了代码复用和提高代码的可维护性。
多态(Polymorphism)是指允许一个接口或类具有多个实现,或者一个对象可以表现出多种形态。多态的主要目的是提高代码的灵活性和可扩展性。
在Java中,继承和多态的实现主要依赖于以下几点:
extends
关键字,子类可以继承父类的属性和方法。例如:class Animal {
void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Dog is barking");
}
}
abstract class Shape {
abstract void draw();
}
class Circle extends Shape {
void draw() {
System.out.println("Drawing a circle");
}
}
class Rectangle extends Shape {
void draw() {
System.out.println("Drawing a rectangle");
}
}
public class Main {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();
shape1.draw(); // 输出 "Drawing a circle"
shape2.draw(); // 输出 "Drawing a rectangle"
}
}
在这个例子中,我们使用了抽象类Shape
和两个子类Circle
和Rectangle
。我们创建了两个Shape
类型的引用变量shape1
和shape2
,分别引用Circle
和Rectangle
对象。当我们调用shape1.draw()
和shape2.draw()
时,会根据实际对象的类型调用相应的draw()
方法,实现了多态。