Java 面向对象—继承中常用关键字this、super…(继上篇)

extends关键字

在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。

下面是Java的继承类型:

单继承

public class A{......}

public class B extends A{......}

多重继承

public class A {............}

public class B extends A {...........}
public class C extends B {.....}

不同类继承同一个类

public class A{ .........}

public class B extends A {...........}

public class C extends A {...........}

多继承(不支持)

public class A {.......... }
public class B {...........}

public class C extends A,B {……

}// Java不支持多继承

implements关键字

在 Java 中,implements 是用于实现一个接口的关键字。它的语法是在一个类的声明中使用 implements 关键字后,后面跟着一个或多个接口的名称,多个接口使用逗号进行分隔。

当一个类实现了一个接口时,它必须实现该接口中定义的所有方法。这些方法在接口中被声明,但没有在接口中被实现。实现接口的类必须提供这些方法的具体实现。在 Java 中,类只能继承一个类,但是可以实现多个接口。

以下是一个使用 implements 关键字实现接口的示例:

public interface A {
    public void eat();
    public void sleep();
}
 
public interface B {
    public void show();
}
 
public class C implements A,B {
}

使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。

super 与 this 关键字

在 Java 中,super 和 this 都是关键字,用于访问类的成员变量和方法。
super 关键字表示超类或父类,可以用来调用超类中的方法或构造函数。当子类继承父类时,如果子类中有与父类相同的方法或变量,可以使用 super 关键字调用父类中的方法或变量。

例如,以下代码展示了如何使用 super 来调用父类的构造函数:

public class Parent {
    private String name;

    public Parent(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class Child extends Parent {
    public Child(String name) {
        super(name);
    }
}

在上面的代码中,Child 类继承了 Parent 类,并通过 super 关键字调用了父类的构造函数。

this 关键字表示当前对象,可以用来访问当前对象的成员变量或方法。当类中存在同名的实例变量和局部变量时,可以使用 this 关键字来区分它们。此外,在构造函数中,可以使用 this 关键字调用当前类的其他构造函数。

例如,以下代码展示了如何使用 this 关键字来访问当前对象的成员变量:

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

在上面的代码中,getName() 方法中使用 this.name 来访问当前对象的 name 成员变量。

final 关键字

final 可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。

final 含义为 "最终的"。

使用 final 关键字声明类,就是把类定义定义为最终类,不能被继承,或者用于修饰方法,该方法不能被子类重写:

  • 声明类:

    final class 类名 {//类体}
  • 声明方法:

    修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}

注: final 定义的类,其中的属性、方法不是 final 的。

你可能感兴趣的:(Java基础,java,开发语言)