在Java中,继承是面向对象编程的一个基本概念。继承允许您创建一个新类,这个类是现有类的类型,继承得到现有类的属性和方法。这个新类被称为子类,现有类被称为父类。子类继承后可以在父类已定义的方法和属性的基础上添加新功能,也可以修改父类的方法和属性。
Java继承使用关键字"extends"来实现。例如,我们可以定义一个子类Animal,继承父类Mammal。
class Mammal { public void walk() { System.out.println("Mammal can walk"); } } class Animal extends Mammal { public void walk() { System.out.println("Animal walk on four legs"); } } public class Test { public static void main(String args[]) { Animal a = new Animal(); a.walk(); } }
上述代码中,Animal类继承了Mammal类,并且Animal类重写了Mammal类中的walk()方法。在创建Animal的对象时,会调用Animal类中的walk()方法,输出"Animal walk on four legs"。
重写是继承的一个重要特征。当子类中定义了与父类中同名、同参数的方法时,子类中的方法将覆盖父类的方法,称为重写。
在重写时要注意以下几点:
- 方法名、参数类型、返回值类型必须与父类相同。
- 重写方法的访问级别不能比父类低(例如,父类方法为public,则子类方法也必须为public)。
- 不能重写父类中被声明为final和static的方法。
以下示例演示了重写的方法:
class Animal { public void move() { System.out.println("Animals can move"); } } class Dog extends Animal { public void move() { System.out.println("Dogs can walk and run"); } } public class Test { public static void main(String args[]) { Animal a = new Animal(); Animal b = new Dog(); a.move(); b.move(); } }
上述代码中,Dog类继承了Animal类,并重写了move()方法。在创建Animal和Dog的对象时,向上转型为Animal类型,调用move()方法时,Animal对象输出"Animals can move",Dog对象输出"Dogs can walk and run"。