Java OOP入门:继承、抽象类与对象特性解析

需积分: 0 0 下载量 153 浏览量 更新于2024-08-26 收藏 16KB MD 举报
"Java面向对象编程的第二天课程,主要讲解了继承的概念、特点、好处以及基本语法。讨论了父类和子类的关系,强调子类可以从父类继承非私有的属性和行为,提高了代码的复用性和实现多态的基础。还提到了构造方法和`super`、`this`的关键字用法。" 在Java编程中,面向对象的一个核心特性是继承(Inheritance)。继承允许我们创建一个新类(子类),这个新类能够直接使用已存在的类(父类)的属性和方法,而无需再次编写相同的代码。这样不仅避免了代码重复,也使得类之间的关系更加清晰,符合"开闭原则",即对扩展开放,对修改关闭。 ### 继承的概述 继承描述的是类之间的层次结构,一个类(子类)可以继承另一个类(父类)的属性和方法。在Java中,使用`extends`关键字来表示继承关系。例如,`class ChildClass extends ParentClass {}` 表示`ChildClass`是`ParentClass`的子类。 ### 继承的特点 1. **子类自动拥有父类非私有的成员**:子类实例化后,可以获得父类中非私有(public或protected)的属性和方法。 2. **子类也可以拥有自己的成员**:除了继承父类的特性外,子类还可以定义自己的属性和方法,以满足特定需求。 ### 继承的好处 1. **代码的复用性**:通过继承,子类可以直接使用父类的功能,减少了重复代码,提高了代码的利用率。 2. **多态的前提**:继承使得类与类之间产生了层次关系,为多态提供了基础。多态是指同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 ### 构造方法与`super`、`this`的用法 - **构造方法**:每个类都有构造方法,用于初始化新创建的对象。子类可以有自己特定的构造方法,同时也可以调用父类的构造方法。在子类构造方法中,通过`super`关键字调用父类的构造方法,确保父类的初始化逻辑得以执行。 - **`super`关键字**:`super`用于访问和调用父类的成员,包括属性和方法。在子类中,如果某个成员与父类的成员同名,使用`super`可以明确指定调用父类的成员。 - **`this`关键字**:`this`关键字代表当前对象,用于访问和调用本类的成员。在方法或构造方法中,`this`用来区分同名的局部变量和成员变量,或调用本类的其他构造方法。 ### 示例代码 ```java class Employee { String name; // 定义name属性 public void work() { System.out.println("尽心尽力地工作"); } } class Teacher extends Employee { public void printName() { System.out.println("name=" + name); } } public class ExtendDemo01 { public static void main(String[] args) { Teacher teacher = new Teacher(); // 创建一个讲师类对象 teacher.work(); // 调用父类的方法 teacher.printName(); // 调用子类的方法 } } ``` 在这个例子中,`Teacher`类继承了`Employee`类,并且可以使用`Employee`的`work`方法,同时`Teacher`类还可以定义自己的`printName`方法。在`main`方法中,我们创建了一个`Teacher`对象,可以调用`Employee`类的方法和`Teacher`类的方法。 Java的继承机制是实现代码复用、构建复杂系统的重要工具。通过继承,我们可以构建出层次分明、结构合理的类体系,更好地模拟现实世界中的各种对象关系。