当前位置 : 主页 > 网络编程 > net编程 >

Java基础语法(七):继承

来源:互联网 收集:自由互联 发布时间:2023-09-03
前言 在 Java 中,继承是面向对象编程中最为基本的概念之一。继承可以使代码重用更加容易,同时也可以使程序更加易于维护和扩展。本文将介绍 Java 继承的概念、用法和实例。 一、

前言

在 Java 中,继承是面向对象编程中最为基本的概念之一。继承可以使代码重用更加容易,同时也可以使程序更加易于维护和扩展。本文将介绍 Java 继承的概念、用法和实例。

一、继承是什么?

Java 继承的概念是指一个类可以从另一个类中继承属性和方法。被继承的类称为父类或者超类,继承这个类的类被称为子类或者派生类。子类可以继承父类中的属性和方法,同时可以重写父类中的方法或者添加新的方法和属性。Java 继承使用关键字 extends 来实现。

二、代码示例

以下是一个简单的实例,其中子类 Employee 继承父类 Person:

public class Person {
    private String name;
    private int age;
}
 
public class Employee extends Person {
    private double salary;
    private String department;
}

在上面的例子中,Employee 类继承了 Person 类中的属性和方法,同时也添加了新的属性 salary 和 department。Employee 类可以通过调用 getter 和 setter 方法来访问继承自 Person 类的属性。

Java 继承允许子类重写父类中的方法。子类必须在方法名、参数列表以及返回类型上与父类的方法完全一致,同时可以在方法体中重新实现该方法。这种特性可用于实现多态性,使得同一方法可以针对不同的对象具有不同的行为。

以下是一个示例,其中子类 Student 重写了父类 Person 中的方法 getName():

public class Person {
    private String name;
    private int age;
    
    public String getName() {
        return this.name;
    }
}
 
public class Student extends Person {
    private String school;
    
    @Override
    public String getName() {
        return "Student: " + super.getName();
    }
}

在上面的例子中,子类 Student 重写了父类 Person 中的 getName() 方法,并在方法体中添加了新的实现。其中 super.getName() 调用了父类 Person 中的 getName() 方法。通过重写方法,Student 类实现了对基类方法的定制化。

完整示例:

public class Person {
    private String name;
    private int age;
    
    // 为简洁起见,省略了构造函数、getter和setter。
    
    public String getName() {
        return this.name;
    }
}
 
public class Employee extends Person {
    private double salary;
    private String department;
    
    // 为简洁起见,省略了构造函数、getter和setter。
}
 
public class Student extends Person {
    private String school;
    
    // 为简洁起见,省略了构造函数、getter和setter。
    
    @Override
    public String getName() {
        return "Student: " + super.getName();
    }
}
 
public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        Employee employee = new Employee();
        Student student = new Student();
        
        person.setName("John Smith");
        System.out.println("Name: " + person.getName()); // 输出: Name: John Smith
        
        employee.setName("Alice Johnson");
        employee.setSalary(5000);
        employee.setDepartment("Engineering");
        System.out.println("Name: " + employee.getName()); // 输出: Name: Alice Johnson
        System.out.println("Salary: " + employee.getSalary()); // 输出: Salary: 5000
        System.out.println("Department: " + employee.getDepartment()); // 输出: Department: Engineering
        
        student.setName("Bob Smith");
        student.setSchool("Harvard University");
        System.out.println("Name: " + student.getName()); // 输出: Name: Student: Bob Smith
        System.out.println("School: " + student.getSchool()); // 输出: School: Harvard University
    }
}

总结

Java 继承是面向对象编程中最为基本的概念之一。它可以使代码重用更加容易,同时也可以使程序更加易于维护和扩展。子类可以继承父类中的属性和方法,并可以重写父类中的方法或者添加新的方法和属性。使用 Java 继承可以提高代码的可复用性和可扩展性,同时也有利于实现多态性。

网友评论