在Java中,一个类可以派生出另一个类,被派生的类称为子类,派生出子类的类称为父类。父类中的属性和方法可以被子类继承和重用。使用继承可以让代码更加简洁和易于维护。子类可以扩展和修改父类的功能,也可以添加自己的特有属性和方法。
继承的语法
在Java中,使用关键字extends定义一个类的继承关系。子类中可以访问父类中被继承的非私有成员变量和方法,而父类不能访问子类的成员变量和方法。子类可以重写父类的方法,也可以使用super关键字在子类中调用父类的方法。
public class ParentClass { public int publicVar = 1; protected int protectedVar = 2; private int privateVar = 3; public void publicMethod() { System.out.println("This is a public method from parent class."); } protected void protectedMethod() { System.out.println("This is a protected method from parent class."); } private void privateMethod() { System.out.println("This is a private method from parent class."); }}public class ChildClass extends ParentClass { public void childMethod() { System.out.println("This is a method in child class."); System.out.println(publicVar); System.out.println(protectedVar); publicMethod(); protectedMethod(); //privateVar和privateMethod不可访问 } public void publicMethod() { System.out.println("This is a public method from child class."); super.publicMethod(); }}
Java继承中的多态
多态是指同一种行为在不同的情境下具有不同的表现形式。在Java中,多态是通过方法的重写和接口实现来实现的。一个子类对象可以被当做父类对象使用,同时根据实际类型的不同,调用同一个方法时会有不同的表现形式。
public class Animal { public void makeSound() { System.out.println("This animal makes sound."); }}public class Dog extends Animal { public void makeSound() { System.out.println("The dog barks."); }}public class Cat extends Animal { public void makeSound() { System.out.println("The cat meows."); }}public class Main { public static void main(String[] args) { Animal animal1 = new Animal(); Animal animal2 = new Dog(); Animal animal3 = new Cat(); animal1.makeSound(); animal2.makeSound(); animal3.makeSound(); }}
在这个例子中,通过方法的重写实现了多态。animal2和animal3既是Animal类型,也是Dog和Cat类型,调用makeSound方法时表现形式不同。