当前位置:实例文章 » JAVA Web实例» [文章]JAVA SE -- 第十天

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 的一些重要概念,包括接口、抽象类和多态。我们通过代码示例和注释来理解这些概念的定义和应用。

相关标签:java开发语言
其他信息

其他资源

Top