JAVA——继承知识解惑及使用

1. 继承的特性

  • 子类拥有父类非private的属性,方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。
    提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。
  • 你要了解什么是继承,继承把父类的所有的东西全部继承过来,包括他变量和方法,方法根据子类需要可以重写方法体就是大括弧{}中实现的内容;

2. 继承的关键字

  • 继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。

4. super/this 关键字

  • super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
  • this关键字:指向自己的引用。
  • 代码示例
public class SuperDemo {
    public static void main(String []args) {
        new SubClass().showMessage();
    }
}
 
class SuperClass {
    int i = 50;
}
 
class SubClass extends SuperClass {
    int i =100;
    public void showMessage() {
        System.out.printf("super.i = %d, this.i = %d\n", super.i, this.i);
    }
}

输出结果
super.i = 50, this.i = 100

5. super 关键字

  • 5.1—super 表示使用它的类的父类。super 可用于:
    调用父类的构造方法;
    调用父类的方法(子类覆盖了父类的方法时);
    访问父类的数据域(可以这样用但没有必要这样用)。
  • 5.2调用父类的构造方法语法:
    super();或 super(参数列表);
    注意:super 语句必须是子类构造方法的第一条语句。不能在子类中使用父类构造方法名来调用父类构造方法。 父类的构造方法不被子类继承。调用父类的构造方法的唯一途径是使用 super 关键字,如果子类中没显式调用,则编译器自动将 super(); 作为子类构造方法的第一条语句。这会形成一个构造方法链。
    静态方法中不能使用 super 关键字。

  • 5.3调用父类的方法语法:
    使用方式:super.方法名(参数列表);
    如果是继承的方法,是没有必要使用 super 来调用,直接即可调用。但如果子类覆盖或重写了父类的方法,则只有使用 super 才能在子类中调用父类中的被重写的方法。

6. this关键字

  • 6.1—this 关键字表示当前对象。可用于:
    调用当前类的构造方法,并且必须是方法的第一条语句。如:this(); 调用默认构造方法。this(参数); 调用带参构造方法。
    限定当前对象的数据域变量。一般用于方法内的局部变量与对象的数据域变量同名的情况。如 this.num = num。this.num 表示当前对象的数据域变量 num,而 num 表示方法中的局部变量。

4. 继承相关的好文

https://www.cnblogs.com/CZM-/p/7467321.html

你可能感兴趣的:(JAVA——继承知识解惑及使用)