JAVA SE -- 第十天
发布人:shili8
发布时间:2025-02-17 07:42
阅读次数:0
**Java SE -- 第十天**
今天,我们将继续学习 Java 的一些重要概念,包括接口、抽象类和多态。
### 接口 (Interface)
在 Java 中,接口是一种特殊的类,它不能被实例化,也不能有构造函数。接口通常用于定义一个类必须实现的方法集。
javapublic interface Printable { void print(); }
上面的代码定义了一个名为 `Printable` 的接口,它只有一个方法 `print()`。任何实现这个接口的类都必须提供一个 `print()` 方法。
### 抽象类 (Abstract Class)
抽象类是不能被实例化的类,它可以有构造函数和成员变量。抽象类通常用于定义一个类的基本结构和行为。
javapublic abstract class Animal { private String name; public Animal(String name) { this.name = name; } public void sound() { System.out.println("动物叫"); } }
上面的代码定义了一个名为 `Animal` 的抽象类,它有一个构造函数和一个方法 `sound()`。任何继承这个类的子类都必须实现自己的 `sound()` 方法。
### 多态 (Polymorphism)
多态是指同一个方法在不同对象中表现出不同的行为。多态通常通过重载或重写方法来实现。
javapublic class Dog extends Animal { @Override public void sound() { System.out.println("狗叫"); } } public class Cat extends Animal { @Override public void sound() { System.out.println("猫叫"); } }
上面的代码定义了两个子类 `Dog` 和 `Cat`,它们都继承自抽象类 `Animal`。每个子类都重写了 `sound()` 方法,使得同一个方法在不同对象中表现出不同的行为。
### 练习1. 定义一个接口 `Shape`,它有两个方法 `area()` 和 `perimeter()`。
2. 定义一个抽象类 `Rectangle`,它继承自 `Shape`,并实现了 `area()` 和 `perimeter()` 方法。
3. 定义一个子类 `Square`,它继承自 `Rectangle`,并重写了 `perimeter()` 方法。
javapublic interface Shape { double area(); double perimeter(); } public abstract class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double area() { return width * height; } @Override public double perimeter() { return2 * (width + height); } } public class Square extends Rectangle { public Square(double side) { super(side, side); } @Override public double perimeter() { return4 * getSide(); } private double getSide() { return getWidth(); } }
上面的代码定义了一个接口 `Shape`,一个抽象类 `Rectangle` 和一个子类 `Square`。每个类都实现了或重写了 `area()` 和 `perimeter()` 方法,使得同一个方法在不同对象中表现出不同的行为。
### 总结今天,我们学习了 Java 的一些重要概念,包括接口、抽象类和多态。我们通过代码示例和注释来理解这些概念的定义和应用。