Java继承与多态详解:重写、接口与抽象类

下载需积分: 10 | PPTX格式 | 1.28MB | 更新于2024-07-18 | 171 浏览量 | 3 下载量 举报
收藏
"Java入门基础-继承及多态" 在Java编程语言中,继承和多态是面向对象编程的两个核心概念,它们允许代码复用和灵活性。让我们深入探讨这两个主题。 1. 继承 继承是一种机制,允许一个类(子类或派生类)从另一个类(父类或基类)继承特性。这样,子类就自动获得了父类的非私有属性和方法。继承的主要好处是代码重用和创建层次结构。在Java中,一个类只能有一个直接父类,这就是单继承的特点。如果需要多重继承,可以使用接口来实现。 1.1 类继承普通类 在Java中,使用`extends`关键字来实现继承。例如: ```java public class ChildClass extends ParentClass { // 子类的代码 } ``` 1.1.1 方法的重写(覆盖) 当子类需要改变父类的行为时,可以重写父类的方法。重写意味着子类提供了与父类同名、同参数列表的方法。重写的方法必须具有相同的返回类型和参数类型,但访问权限不能更低。在子类中,可以使用`@Override`注解来明确表示方法是重写的。 ```java public class ChildClass extends ParentClass { @Override public void parentMethod() { // 重写父类的方法 } } ``` 1.1.2 方法的添加(重载) 方法重载是指在同一个类中,可以有多个方法拥有相同的名字,但参数列表不同(参数数量、类型或顺序不同)。重载与重写不同,它不涉及继承关系。 ```java public class MyClass { public void myMethod(int a) { // 方法一 } public void myMethod(String b) { // 方法二 } } ``` 1.2 接口继承 接口是完全抽象的类,它只包含常量和抽象方法。一个类可以实现多个接口,实现接口意味着承诺实现接口中定义的所有抽象方法。接口之间可以使用`extends`关键字实现继承。 ```java interface InterfaceA { void methodA(); } interface InterfaceB extends InterfaceA { void methodB(); } ``` 1.3 类继承抽象类 抽象类是包含抽象方法的类,不能被实例化。子类继承抽象类时,必须实现所有未实现的抽象方法,除非子类也是抽象类。 02. 覆盖和重载,抽象类和接口的区别 - 覆盖(Overriding):子类重写父类的具体方法,保持方法签名不变。 - 重载(Overloading):在同一个类中,通过不同的参数列表创建多个同名方法。 - 抽象类:包含抽象方法,可以有具体方法,用于提供部分实现。 - 接口:完全抽象,只有常量和抽象方法,用于定义规范,强制实现。 03. 多态 多态性是面向对象的三大特性之一,它允许子类对象能够替换父类对象。多态分为编译时多态和运行时多态。编译时多态通过方法重载实现,运行时多态通过方法重写和向上转型实现。在Java中,多态主要体现在方法调用上,通过父类引用指向子类对象,调用的方法是子类中重写过的方法。 例子: ```java public class Animal { public void say() { System.out.println("Animal is speaking"); } } public class Dog extends Animal { @Override public void say() { System.out.println("Dog is barking"); } } public class Test { public static void main(String[] args) { Animal animal = new Dog(); // 向上转型 animal.say(); // 运行时多态,实际调用Dog的say方法 } } ``` 在这个例子中,虽然`animal`是`Animal`类型的引用,但它实际上指向的是`Dog`对象,因此调用的`say()`方法是`Dog`类中的版本。 总结,继承和多态是Java中实现面向对象设计的关键概念,它们提高了代码的复用性、可维护性和灵活性。理解并熟练运用这些概念,对于提升Java编程能力至关重要。

相关推荐