返回
揭秘Java中的类继承:理解父类与子类的奥秘
闲谈
2023-12-31 03:40:13
一、子类继承父类的写法
子类继承父类的写法非常简单,只需要在子类声明中使用extends ,后跟父类的类名即可。例如,如果我们有一个父类Animal ,我们可以创建一个子类Dog 来继承Animal 的属性和方法:
class Animal {
private String name;
private int age;
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
class Dog extends Animal {
private String breed;
public Dog(String name, int age, String breed) {
super(name, age); // 调用父类的构造方法
this.breed = breed;
}
public String getBreed() {
return breed;
}
}
在上面的代码中,Dog 类继承了Animal 类的所有属性和方法,并添加了新的属性breed 和新的方法getBreed() 。
二、子类与父类之间的关系
子类与父类之间存在着以下几种关系:
- 父类可以有多个子类,但子类只能有一个父类。
- 子类会继承父类的一些属性和方法,这些属性和方法称为继承的属性 和继承的方法 。
- 子类在创建对象时,会先调用父类的构造方法,然后调用子类的构造方法。
- 子类可以重写父类的方法,即子类可以定义一个与父类同名的方法,但方法体不同。
三、四大权限修饰符
四大权限修饰符public 、protected 、default 和private 可以控制继承的属性和方法的访问权限。
- public :表示该属性或方法可以在任何地方被访问。
- protected :表示该属性或方法只能在该类及其子类中被访问。
- default :表示该属性或方法只能在该包及其子包中被访问。
- private :表示该属性或方法只能在该类中被访问。
例如,在下面的代码中,name 属性是public 的,age 属性是protected 的,breed 属性是default 的,getName() 方法是public 的,getAge() 方法是protected 的,getBreed() 方法是default 的。
class Animal {
public String name;
protected int age;
String breed; // default
public String getName() {
return name;
}
protected int getAge() {
return age;
}
String getBreed() {
return breed;
}
}
class Dog extends Animal {
private String color;
public String getColor() {
return color;
}
}
在上面的代码中,Dog 类可以访问Animal 类的name 属性和getAge() 方法,但不能访问age 属性和getBreed() 方法。Dog 类还可以定义自己的私有属性color 和方法getColor() 。
结语
类继承是Java中面向对象编程的重要组成部分,它允许子类从父类继承属性和方法,并在此基础上进行扩展。通过了解子类继承父类的写法、子类与父类之间的关系以及四大权限修饰符,我们可以更好地理解Java中的类继承机制。