编写完整代码展示JAVA语言中的多态,封装,继承,文件输入输出的知识点
时间: 2023-08-01 07:06:51 浏览: 91
好的,下面是一个完整的JAVA代码示例,包括多态、封装、继承和文件输入输出的知识点:
```java
import java.io.*;
import java.util.*;
// 父类 Animal
class Animal {
private String name;
// 构造函数
public Animal(String name) {
this.name = name;
}
// getter & setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 抽象方法
public void makeSound() {
System.out.println("动物发出叫声");
}
}
// 子类 Cat
class Cat extends Animal {
public Cat(String name) {
super(name);
}
// 重写父类 makeSound() 方法
@Override
public void makeSound() {
System.out.println(getName() + "发出喵喵叫声");
}
}
// 子类 Dog
class Dog extends Animal {
public Dog(String name) {
super(name);
}
// 重写父类 makeSound() 方法
@Override
public void makeSound() {
System.out.println(getName() + "发出汪汪叫声");
}
}
public class Main {
public static void main(String[] args) {
List<Animal> animals = new ArrayList<>();
animals.add(new Cat("Tom"));
animals.add(new Dog("Jerry"));
for (Animal animal : animals) {
animal.makeSound(); // 多态
}
// 文件输入输出
try {
File file = new File("animals.txt");
FileWriter writer = new FileWriter(file);
for (Animal animal : animals) {
writer.write(animal.getName() + "\n");
}
writer.close();
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
上面的代码中,我们定义了一个 Animal 父类和两个子类 Cat 和 Dog,利用继承来实现代码的复用。Animal 类中使用了封装来保护 name 属性,同时定义了抽象方法 makeSound(),在子类中进行重写,实现多态。在 Main 类中,我们创建了一个 Animal 类型的 List,并向其中添加了 Cat 和 Dog 实例,随后使用 for 循环遍历该 List,调用 makeSound() 方法,实现了多态。在文件输入输出的部分,我们使用了 Java 中的 File、FileWriter 和 Scanner 类来实现文件的读写操作。
阅读全文