Java是一种强大的编程语言,它支持许多重要的概念,其中两个最重要的是继承和多态。
继承是一种代码重用的方式,它允许程序员定义一个新的类,并从现有的类继承所有的属性和方法。这样,程序员就可以在不重复编写代码的情况下扩展现有类的功能。
public class Animal { protected String name; protected int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void eat(String food) { System.out.println(name + " is eating " + food); } } public class Dog extends Animal { public Dog(String name, int age) { super(name, age); } public void bark() { System.out.println(name + " is barking"); } }
在这个例子中,Dog类继承了Animal类,它继承了Animal中的name和age属性,以及eat方法。Dog还定义了它自己的bark方法。
多态是一种面向对象的概念,它允许程序员使用一个对象来代表多个不同类型的对象。这样,程序员就可以在不知道实际对象类型的情况下调用方法。
public class Animal { protected String name; protected int age; public Animal(String name, int age) { this.name = name; this.age = age; } public void makeSound() { System.out.println("This animal makes a sound"); } } public class Dog extends Animal { public Dog(String name, int age) { super(name, age); } public void makeSound() { System.out.println("This dog barks"); } } public class Cat extends Animal { public Cat(String name, int age) { super(name, age); } public void makeSound() { System.out.println("This cat meows"); } }
在这个例子中,Animal类定义了一个makeSound方法。Dog和Cat类继承了Animal类并覆盖了makeSound方法。现在,程序员可以通过Animal类型的变量来调用makeSound方法,这个变量可以指向Dog或Cat对象:
Animal animal1 = new Dog("Lassie", 3); animal1.makeSound(); // Output: This dog barks Animal animal2 = new Cat("Whiskers", 2); animal2.makeSound(); // Output: This cat meows
在这里,变量animal1和animal2都是Animal类型,但是它们实际上分别指向Dog和Cat对象。程序员可以调用makeSound方法,而不用知道实际对象类型。