【Java SE】继承与多态
发布人:shili8
发布时间:2025-03-05 21:20
阅读次数:0
**继承与多态**
在 Java 中,继承是面向对象编程的一个基本概念。它允许一个类(子类)继承另一个类(父类)的属性和方法,并可以扩展或重写这些属性和方法。
### 继承的定义和目的继承是一种特殊的关系,它使得一个类(子类)能够访问另一个类(父类)的成员变量和成员方法。继承的目的是为了实现代码复用,减少代码冗余,并且提高代码的可维护性。
### 继承的类型Java 支持两种继承关系:单继承和多继承。
#### 单继承在单继承中,一个子类只能有一个父类。例如:
javapublic class Animal { public void eat() { System.out.println("动物吃东西"); } } public class Dog extends Animal { @Override public void eat() { System.out.println("狗吃东西"); } }
在上面的例子中,Dog 类继承了 Animal 类的 eat 方法,并且重写了该方法。
#### 多继承Java 不支持多继承。也就是说一个类不能有多个父类。
### 继承的优点和缺点继承的优点:
* **代码复用**:继承可以使得子类复用父类的属性和方法,从而减少代码冗余。
* **提高可维护性**:继承可以使得子类更容易维护,因为子类只需要关注自己的行为,而不需要关注父类的实现细节。
继承的缺点:
* **紧密耦合**:继承会导致子类和父类之间紧密耦合,这意味着子类的变化可能会影响到父类。
* **多态性问题**:继承可能会导致多态性问题,因为子类可能会重写父类的方法,从而导致程序行为不一致。
### 多态多态是面向对象编程的一个基本概念。它允许一个类(子类)表现出多种形态,具体取决于上下文。
#### 多态的定义和目的多态是一种特殊的关系,它使得一个类(子类)能够表现出多种形态,具体取决于上下文。多态的目的是为了实现更灵活和更高效的程序设计。
#### 多态的类型Java 支持两种多态性:方法多态性和运算符多态性。
#### 方法多态性方法多态性是指一个类(子类)能够表现出多种形态,具体取决于上下文。例如:
javapublic class Animal { public void sound() { System.out.println("动物叫声"); } } public 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 方法,并且重写了该方法。
#### 运算符多态性运算符多态性是指一个类(子类)能够表现出多种形态,具体取决于上下文。例如:
javapublic class Number { public int add(int num) { return this + num; } } public class Integer extends Number { @Override public int add(int num) { return (int)(this + num); } }
在上面的例子中,Integer 类继承了 Number 类的 add 方法,并且重写了该方法。
### 总结继承和多态是面向对象编程中的两个基本概念。继承允许一个类(子类)继承另一个类(父类)的属性和方法,并可以扩展或重写这些属性和方法。多态性允许一个类(子类)表现出多种形态,具体取决于上下文。
###例题1. 给定以下代码:
javapublic class Animal { public void sound() { System.out.println("动物叫声"); } } public class Dog extends Animal { @Override public void sound() { System.out.println("狗叫声"); } }
请写出一个测试类,测试 Dog 类的 sound 方法。
2. 给定以下代码:
javapublic class Number { public int add(int num) { return this + num; } } public class Integer extends Number { @Override public int add(int num) { return (int)(this + num); } }
请写出一个测试类,测试 Integer 类的 add 方法。
### 测试类
javapublic class TestAnimal { public static void main(String[] args) { Dog dog = new Dog(); dog.sound(); // 输出 "狗叫声" } } public class TestNumber { public static void main(String[] args) { Integer num =10; System.out.println(num.add(5)); // 输出15 } }
### 最后继承和多态是面向对象编程中的两个基本概念。它们允许一个类(子类)继承另一个类(父类)的属性和方法,并可以扩展或重写这些属性和方法。它们还允许一个类(子类)表现出多种形态,具体取决于上下文。
###例题答案1. 测试 Dog 类的 sound 方法:
javapublic class TestDog { public static void main(String[] args) { Dog dog = new Dog(); dog.sound(); // 输出 "狗叫声" } }
2. 测试 Integer 类的 add 方法:
javapublic class TestInteger { public static void main(String[] args) { Integer num =10; System.out.println(num.add(5)); // 输出15 } }