1. Java多态性
1.1 多态的概念
多态性是面向对象编程的重要特性之一,它允许不同类的对象对同一消息做出不同的响应。
1.2 多态的实现方式
在Java中,多态性通过继承和重写方法来实现。子类可以覆盖(重写)父类的方法,从而表现出不同的行为。
示例代码
// 父类
class Animal {
void sound() {
System.out.println("Animal makes a sound");
}
}
// 子类1
class Dog extends Animal {
@Override
void sound() {
System.out.println("Dog barks");
}
}
// 子类2
class Cat extends Animal {
@Override
void sound() {
System.out.println("Cat meows");
}
}
// 测试类
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog(); // 多态性:父类引用指向子类对象
Animal animal2 = new Cat(); // 多态性:父类引用指向另一个子类对象
animal1.sound(); // 输出 "Dog barks"
animal2.sound(); // 输出 "Cat meows"
}
}
2. Java异常处理
2.1 异常的概念
异常是在程序执行期间发生的问题,它干扰了程序的正常执行流程。
2.2 异常处理的机制
Java提供了try-catch块来处理异常。在try块中放置可能引发异常的代码,而在catch块中处理异常情况。
2.3 异常的分类
- 受检异常(Checked Exception):在编译时检查的异常,必须显式地进行处理。
- 非受检异常(Unchecked Exception):在运行时才会出现的异常,编译器不会检查。
2.4 finally块
finally块用于执行无论是否发生异常都需要执行的代码,比如资源的释放。
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
FileReader file = new FileReader("test.txt");
BufferedReader fileInput = new BufferedReader(file);
// 读取文件内容
String line = fileInput.readLine();
System.out.println(line);
// 关闭文件
fileInput.close();
} catch (FileNotFoundException e) {
System.out.println("File not found: " + e.getMessage());
} catch (IOException e) {
System.out.println("IOException: " + e.getMessage());
} finally {
System.out.println("Finally block always executes");
}
}
}
在这个例子中:
FileReader
可能抛出FileNotFoundException
。BufferedReader
可能抛出IOException
。finally
块用于关闭文件,无论是否发生异常。