代码随想录第十六天
发布人:shili8
发布时间:2025-01-20 16:39
阅读次数:0
**代码随想录 第十六天**
今天,我们继续讨论 Java 的面向对象编程。我们将学习如何使用继承、多态和接口来实现更复杂的类设计。
### 继承继承是面向对象编程中一个非常重要的概念。它允许我们创建一个新类,继承另一个已有的类的属性和方法。这有助于我们避免重复代码,并且可以更好地组织我们的程序。
下面是一个简单的例子:
javapublic class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating."); } } public class Dog extends Animal { public Dog(String name) { super(name); } @Override public void eat() { System.out.println("Dog " + getName() + " is eating dog food."); } }
在这个例子中,我们定义了一个 `Animal` 类,具有一个 `name` 属性和一个 `eat()` 方法。然后,我们创建了一个 `Dog` 类,它继承自 `Animal` 类,并且重写了 `eat()` 方法。
### 多态多态是指同一个方法在不同类中表现出不同的行为。这可以通过重写父类的方法来实现。
下面是一个例子:
javapublic class Shape { public void draw() { System.out.println("Drawing a shape."); } } public class Circle extends Shape { @Override public void draw() { System.out.println("Drawing a circle."); } } public class Rectangle extends Shape { @Override public void draw() { System.out.println("Drawing a rectangle."); } }
在这个例子中,我们定义了一个 `Shape` 类,具有一个 `draw()` 方法。然后,我们创建了两个类 `Circle` 和 `Rectangle`,它们继承自 `Shape` 类,并且重写了 `draw()` 方法。
### 接口接口是抽象类的另一种形式,它们定义了一组方法,但不提供实现。我们可以使用接口来定义一个类必须具有哪些方法。
下面是一个例子:
javapublic interface Printable { void print(); } public class Document implements Printable { @Override public void print() { System.out.println("Printing a document."); } }
在这个例子中,我们定义了一个 `Printable` 接口,它具有一个 `print()` 方法。然后,我们创建了一个 `Document` 类,它实现了 `Printable` 接口,并且提供了 `print()` 方法的实现。
### 总结今天,我们学习了继承、多态和接口这些面向对象编程中的重要概念。我们通过例子来了解如何使用这些概念来设计更复杂的类。
###问题1.什么是继承?
2.什么是多态?
3.什么是接口?
### 答案1. 继承是指一个新类继承另一个已有的类的属性和方法。
2. 多态是指同一个方法在不同类中表现出不同的行为。
3. 接口是抽象类的另一种形式,它们定义了一组方法,但不提供实现。
###代码
javapublic class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating."); } } public class Dog extends Animal { public Dog(String name) { super(name); } @Override public void eat() { System.out.println("Dog " + getName() + " is eating dog food."); } }
javapublic class Shape { public void draw() { System.out.println("Drawing a shape."); } } public class Circle extends Shape { @Override public void draw() { System.out.println("Drawing a circle."); } } public class Rectangle extends Shape { @Override public void draw() { System.out.println("Drawing a rectangle."); } }
javapublic interface Printable { void print(); } public class Document implements Printable { @Override public void print() { System.out.println("Printing a document."); } }