Java 类与接口详解
Java 是一种面向对象的编程语言,其中的最基本的组成单元是类和接口。在本文中,我们将详细介绍 Java 类和接口的概念、特性以及如何使用它们进行编程。
Java 类
类是 Java 中最基本的代码组织单位。一个类可以包含属性(数据)和方法(行为)。通过创建类的实例(对象),我们可以访问和操作类中的属性和方法。
定义类
在 Java 中,我们使用 class
关键字来定义一个类。以下是一个示例:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
}
}
上述代码定义了一个名为 Person
的类,该类具有 name
和 age
两个私有属性,以及一个公有构造方法和一个公有方法 sayHello
。构造方法用于创建 Person
对象时初始化属性,而 sayHello
方法用于打印人物的信息。
创建类的实例
要使用类,我们需要创建类的实例。以下是创建 Person
类实例的示例代码:
Person person = new Person("Alice", 25);
person.sayHello();
上述代码创建了一个名为 person
的 Person
类实例,并调用了该实例的 sayHello
方法。
继承
继承是面向对象编程中的一个重要概念,允许我们创建一个新的类,并继承现有类的属性和方法。通过继承,我们可以实现代码的重用和扩展。
在 Java 中,我们使用 extends
关键字来实现继承。以下是一个示例:
public class Student extends Person {
private int grade;
public Student(String name, int age, int grade) {
super(name, age);
this.grade = grade;
}
public void study() {
System.out.println("I am studying in grade " + grade + ".");
}
}
上述代码定义了一个名为 Student
的类,该类继承了 Person
类,并添加了一个 grade
属性和一个 study
方法。
多态
多态是面向对象编程中的另一个重要概念,允许我们通过统一的接口来处理不同类的对象。在 Java 中,多态的实现方式是通过接口来实现的。
Java 接口
接口是一种包含一组抽象方法的类。接口定义了类应该具有的行为,但不提供具体的实现。类可以实现一个或多个接口,以实现某种行为。
定义接口
在 Java 中,我们使用 interface
关键字来定义一个接口。以下是一个示例:
public interface Drawable {
void draw();
}
上述代码定义了一个名为 Drawable
的接口,该接口包含一个无返回值、无参数的 draw
方法。
实现接口
要实现一个接口,我们需要使用 implements
关键字。以下是一个实现 Drawable
接口的示例:
public class Circle implements Drawable {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public void draw() {
System.out.println("Drawing a circle with radius " + radius);
}
}
上述代码定义了一个名为 Circle
的类,该类实现了 Drawable
接口,并实现了 draw
方法。
接口的多重实现
一个类可以实现多个接口。以下是一个实现多个接口的示例:
public class Rectangle implements Drawable, Movable {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public void draw() {
System.out.println("Drawing a rectangle with width " + width + " and height " + height);
}
@Override
public void move(double dx, double dy) {
System.out.println("Moving the rectangle by (" + dx + ", " + dy + ")");
}
}
上述代码定义了