java中的继承
目录
- java继承
- 1.父类
- 2.子类-------继承父类:子类 extends 父类
- 3.继承的本质
- 4.java的继承层次是不能互相继承的
- 5.一个类可以被多个类当成父类,一个子类只能有一个父类(java仅支持单继承):
- 6. 继承的实现
- 7. 构造方法的继承
- 8. 方法的重写(Override)
- 9. 访问修饰符与继承
- 10. 继承的限制
java继承
1.父类
public class Person {
public Double height;
public String name;
public char sex;
public void run(){
System.out.println("任何人都可以跑");
}
public void a(){
System.out.println("...........");
}
}
2.子类-------继承父类:子类 extends 父类
public class Student extends Person{//继承person
public void study(){
System.out.println("学生学习");
}
}
3.继承的本质
继承的本质就是代码的复用,(子类复用父类的代码)子类可以使用父类已经写好的代码,子类就不需要重新写了,而父类是不能使用子类的代码的
public static void main(String[] args) {
Student student = new Student();
student.run();
// 继承的本质就是代码的复用,子类可以使用父类已经写好的代码,子类就不需要重新写了
Person person = new Person();
person.study();
// 父类是不能使用子类的代码的
}
4.java的继承层次是不能互相继承的
5.一个类可以被多个类当成父类,一个子类只能有一个父类(java仅支持单继承):
6. 继承的实现
在 Java 中,继承是通过extends
关键字来实现的。子类继承父类的语法如下:
class 子类名 extends 父类名 {
// 子类的属性和方法
}
7. 构造方法的继承
子类可以继承父类的构造方法,但不能直接调用父类的构造方法。如果需要在子类中调用父类的构造方法,可以使用super
关键字。例如:
public class Student extends Person {
public Student(String name, double height, char sex) {
super(name, height, sex); // 调用父类的构造方法
}
// 子类的其他方法
}
8. 方法的重写(Override)
子类可以重写父类的方法,以实现自己的特定行为。重写方法时,需要满足以下条件:
- 方法名和参数列表必须与父类中被重写的方法相同。
- 子类方法的返回类型必须与父类中被重写的方法的返回类型相同或为其子类。
- 子类方法的访问修饰符必须大于或等于父类中被重写的方法的访问修饰符。
例如:
public class Student extends Person {
@Override
public void run() {
System.out.println("学生可以跑得更快"); // 重写父类的run方法
}
// 子类的其他方法
}
9. 访问修饰符与继承
在 Java 中,访问修饰符决定了类、方法和属性的可见性。在继承中,访问修饰符的作用如下:
public
:可以被任何类访问。protected
:可以被同一个包中的类访问,也可以被不同包中的子类访问。default
(没有显式指定访问修饰符):可以被同一个包中的类访问。private
:只能被当前类访问。
当子类继承父类时,子类可以访问父类中声明为public
和protected
的成员,但不能访问声明为private
的成员。
10. 继承的限制
虽然继承提供了代码复用的便利,但也有一些限制:
- Java 不支持多重继承,即一个子类只能有一个父类。
- 继承可能导致类之间的耦合度增加,使得代码维护变得困难。
- 过度使用继承可能导致代码的可读性和可维护性下降。
因此,在设计类时,应该合理使用继承,避免不必要的继承层次。