Java基础知识总结之继承
一、继承概述
Java中的继承是一种重要的代码重用方式,可以让类之间存在“父子关系”,子类可以继承父类的属性和方法,并可以增加自己的属性和方法。
Java中的类可以分成三种:父类、子类和接口。父类和子类之间存在的“父子关系”,是指子类继承了父类的部分属性和方法,从而可以重用父类的代码,减少代码重复。接口则是一种约定,用于定义类具有的行为规范,常用于实现多态性和回调机制。
二、继承的特点
- 一个子类只能有一个直接父类;
- 子类可以继承父类的属性和方法,但不能继承构造函数和私有属性;
- 子类可以增加自己的属性和方法;
- 子类可以覆写父类的方法。
三、继承的语法
在Java中,使用extends
关键字实现继承,语法如下:
public class SubClass extends SuperClass {
// 子类的代码
}
其中,SubClass
表示子类的类名,SuperClass
表示父类的类名。通过子类可以调用父类的属性和方法。
四、继承的实例
1. 父类和子类的属性和方法
以下是一个简单的实例,使用了继承:
// 父类
public class Animal {
public String name; // 父类公共属性
public Animal(String name) {
this.name = name;
}
public void say() { // 父类公共方法
System.out.println("I'm an animal.");
}
}
// 子类
public class Cat extends Animal {
public String color; // 子类新增属性
public Cat(String name, String color) {
super(name); // 调用父类构造函数
this.color = color;
}
public void catchMouse() { // 子类新增方法
System.out.println("I can catch mouse.");
}
@Override
public void say() { // 子类重写父类方法
System.out.println("I'm a cat, my name is " + name + ", my color is " + color + ".");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Cat cat = new Cat("Tom", "white");
cat.say(); // 调用子类重写的say方法
cat.catchMouse(); // 调用子类新增的catchMouse方法
}
}
输出结果:
I'm a cat, my name is Tom, my color is white.
I can catch mouse.
在子类中,通过extends
关键字继承了父类Animal
的属性和方法,加入了一个新的属性color
和一个新的方法catchMouse
,并且重写了父类的say
方法。
2. 多继承
Java不支持多继承,但可以使用接口来达到类似的效果,实现多重继承。
// 接口1
public interface Flyable {
void fly();
}
// 接口2
public interface Swimmable {
void swim();
}
// 子类
public class Bird implements Flyable, Swimmable {
@Override
public void fly() {
System.out.println("I can fly.");
}
@Override
public void swim() {
System.out.println("I can swim.");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Bird bird = new Bird();
bird.fly();
bird.swim();
}
}
输出结果:
I can fly.
I can swim.
在子类中,通过implements
关键字实现接口的继承,实现了多重继承的效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础知识总结之继承 - Python技术站