返回

揭秘Java静态关键字static与继承的三大关键字:this、super和extends

后端

静态、继承的基石:Java中的this、super、extends

Java作为面向对象编程的基石语言,离不开静态static继承三大 this、super、extends。理解它们对深入掌握Java至关重要。

一、静态:类属性的奥秘

1.1 修饰成员变量:静态变量

静态关键字static 赋予成员变量类属性 的特性,使其在内存中仅加载一次,为整个类共享,与任何特定对象无关。

特点:

  • 全局性: 属于类属性,内存中仅加载一次。
  • 共享性: 所有对象共享该变量,修改该变量的值,所有对象都会受到影响。

应用: 常用于存储全局数据,如系统配置、计数器、常量等,对所有对象均有效。

代码示例:

public class Counter {
    private static int count = 0;

    public static void increment() { count++; }
    public static int getCount() { return count; }
}

解释: count是静态变量,所有Counter对象共享同一个count值。increment()递增计数器,getCount()获取当前值。

二、继承的三大关键字

继承是面向对象编程的关键概念,它允许子类继承父类的属性和行为。

2.1 this:引用当前对象

this关键字 用于引用当前对象 ,常用于以下场景:

  • 访问当前对象的成员变量或方法。
  • 从构造方法中调用另一个构造方法。
  • 在方法中调用另一个重载的方法。

代码示例:

public class Person {
    private String name;
    private int age;

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

    public void introduce() {
        System.out.println("My name is " + this.name + " and I am " + this.age + " years old.");
    }
}

解释: this引用当前对象,访问其name和age成员变量,以及introduce()方法。

2.2 super:引用父类

super关键字 用于引用父类 ,常用于以下场景:

  • 访问父类的成员变量或方法。
  • 从子类的构造方法中调用父类的构造方法。
  • 在子类的方法中调用父类的方法。

代码示例:

public class Student extends Person {
    private String school;

    public Student(String name, int age, String school) {
        super(name, age); // 调用父类的构造方法
        this.school = school;
    }

    @Override
    public void introduce() {
        super.introduce(); // 调用父类的方法
        System.out.println("I study at " + this.school + ".");
    }
}

解释: super引用父类,调用其name和age成员变量,以及introduce()方法。

2.3 extends:继承关系

extends关键字 用于建立继承关系 ,子类继承父类的成员变量和方法。

特点:

  • 继承性: 子类继承父类的成员变量和方法。
  • 重写性: 子类可以重写父类的方法。
  • 扩展性: 子类可以扩展父类,添加新的功能或修改已有行为。

代码示例:

public class Animal {
    public void move() { System.out.println("Animal is moving."); }
}

public class Dog extends Animal {
    @Override
    public void move() { System.out.println("Dog is running."); }
    public void bark() { System.out.println("Dog is barking."); }
}

解释: Dog继承Animal,继承其move()方法,并重写该方法为running(),同时添加了新的bark()方法。

结论

静态static继承的三大关键字this、super、extends 是Java编程中至关重要的概念,它们为类属性、对象操作、继承关系提供了基础。熟练掌握这些关键字,将帮助你更深入地理解Java的面向对象特性,并编写更健壮、可维护的代码。

常见问题解答

  1. 静态变量和实例变量的区别是什么?

    • 静态变量是类属性,所有对象共享,修改该变量的值会影响所有对象;而实例变量是对象属性,每个对象都有自己的副本,修改该变量的值不会影响其他对象。
  2. this关键字的作用是什么?

    • this关键字用于引用当前对象,访问其成员变量和方法,并从构造方法或重载方法中调用其他构造方法或方法。
  3. super关键字的作用是什么?

    • super关键字用于引用父类,访问其成员变量和方法,并从子类的构造方法或方法中调用父类的构造方法或方法。
  4. extends关键字的作用是什么?

    • extends关键字用于建立继承关系,允许子类继承父类的成员变量和方法,并可以重写或扩展父类。
  5. 使用静态变量和继承的好处是什么?

    • 静态变量可以存储全局数据,简化数据共享和维护;继承可以实现代码复用,减少冗余,并提高可扩展性。