文章目录
前言
在之前的文章中,我们介绍过面向对象的编程语言,今天我们就来就进入到JAVA面对对象的编程世界,今天我们主要来介绍面向对象的编程范式中一个重要的概念——继承。
继承
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
类的继承方式
在JAVA中我们可以通过 extends 关键字可以申明一个类是从另外一个类继承而来的:
class 父类 {
}
class 子类 extends 父类 {
}
继承的各种类型
多继承
Java不支持多重继承,即一个子类不能继承多个父类。这是因为多重继承可能会导致一些问题,比如:
为了解决这些问题,Java引入了接口(interface)的概念,
继承的特性
各种继承关键字
extends关键字
在 Java 中,extends 关键字用于表示一个类继承自另一个类。子类(派生类)继承父类(基类、超类)的所有方法和属性,并且还可以添加自己的方法和属性。被继承的类称为超类或基类,继承自该类的类称为子类或派生类。
class Animal {
void move() {
System.out.println("动物可以移动");
}
}
class Dog extends Animal {
void move() {
System.out.println("狗可以跑和走");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal(); // Animal 对象
Animal b = new Dog(); // Dog 对象
a.move(); // 执行 Animal 类的方法
b.move(); // 执行 Dog 类的方法
}
}
implements关键字
implements是Java中的一个关键字,用于实现接口。当一个类实现一个接口时,必须使用implements关键字,并且实现该接口中定义的所有方法。
public interface MyInterface {
public void method1();
public void method2();
}
public class MyClass implements MyInterface {
public void method1() {
System.out.println("Implementation of method1");
}
public void method2() {
System.out.println("Implementation of method2");
}
}
super 与 this 关键字
Java 中的 super 和 this 都是关键字,分别用于访问父类和本类中的成员。
super 关键字
super 可以用来访问父类中被子类覆盖的方法和属性
super.父类方法名(参数列表);//或者
super.父类属性名;
//例如:
public class Father {
public String name;
public Father(String name) {
this.name = name;
}
public void eat(String food) {
System.out.println(name + " is eating " + food);
}
}
public class Son extends Father {
public int age;
public Son(String name, int age) {
super(name);
this.age = age;
}
@Override
public void eat(String food) {
super.eat(food); // 调用父类的 eat 方法
System.out.println(name + " is " + age + " years old");
}
}
public class Test {
public static void main(String[] args) {
Son son = new Son("Tom", 18);
son.eat("apple");
}
}
其中,父类方法和属性必须是被子类继承和覆盖的。在子类中,如果要访问父类中的成员,就可以使用 super 关键字。
this 关键字
this 关键字可以用来引用当前对象的属性或方法
this 关键字可以用来引用当前对象的属性或方法//或者
this 关键字可以用来引用当前对象的属性或方法
//例如:
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public void getInfo() {
System.out.println("Name: " + this.name);
System.out.println("Age: " + this.age);
}
}
public class Test {
public static void main(String[] args) {
Student s = new Student("Tom", 18);
s.getInfo();
}
}
final 关键字
Java 中的 final 关键字用于表示不可变的值或不可变的引用
对于变量,final 修饰的变量表示为常量,一旦被赋值后不能被修改。
使用 final 可以使程序更加安全可靠,因为常量值不变,可以防止意外修改值导致程序出错;final 方法和类可以保证方法和类的行为不会被改变,有助于程序设计和优化。