您的位置:

Java修饰符详解

Java修饰符是指用来控制程序类、方法、变量和常量访问权限的关键字。Java中有四种访问修饰符用来控制访问:public, private, protected以及默认访问修饰符(即不写任何关键字)。此外还有final, static, abstract等修饰符。本篇文章将从访问权限、继承、多态、抽象类、接口等几个方面来详解Java修饰符。

一、访问权限修饰符

访问权限修饰符指的是控制类、方法、变量和常量的访问权限,共有四个关键字:public、private、protected及默认。其中:

  • public:可以被任何类或者接口访问,表示该类、方法、变量或者常量是公开的。
  • private:只能在该类中访问,表示该类、方法、变量或者常量是私有的。
  • protected:可以被继承类访问,表示该类、方法、变量或者常量是受保护的。
  • 默认:可以被同一个包中的其他类访问,表示该类、方法、变量或者常量是默认的。

下面是一个Java代码示例:

public class AccessModifiersExample {
  public String publicVariable = "Public Variable";
  private String privateVariable = "Private Variable";
  protected String protectedVariable = "Protected Variable";
  String defaultVariable = "Default Variable";

  public void publicMethod() {
    System.out.println("Public Method.");
  }

  private void privateMethod() {
    System.out.println("Private Method.");
  }

  protected void protectedMethod() {
    System.out.println("Protected Method.");
  }

  void defaultMethod() {
    System.out.println("Default Method.");
  }
}

二、继承修饰符

继承修饰符指的是用来控制子类对父类中成员的继承能力。Java中有两种继承修饰符:final和abstract。其中:

  • final:用来修饰类、方法、变量和常量,表示该类、方法、变量或者常量是不可变的。
  • abstract:只能用来修饰类和方法,表示该类或者方法是抽象的。

下面是一个Java代码示例:

public abstract class Animal {
  public String type;

  public void move() {
    System.out.println("The animal is moving.");
  }

  public abstract void eat();
}

public final class Cat extends Animal {
  public void eat() {
    System.out.println("The cat is eating.");
  }
}

三、多态修饰符

多态修饰符指的是让父类对象可以拥有子类对象的特性的关键字,主要有两种关键字:static和final。其中:

  • static:用来修饰类、方法、变量和常量,表示该类、方法、变量或者常量是静态的,在内存中只有一份。
  • final:用来修饰变量、方法和类,表示该变量、方法或者类是不可修改的,可以避免在运行时被修改。

下面是一个Java代码示例:

public class PolymorphismExample {
  public static void main(String[] args) {
    Animal animal1 = new Cat();
    Animal animal2 = new Dog();
    animal1.move();
    animal2.move();
  }
}

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

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

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

四、抽象类和接口修饰符

抽象类和接口修饰符是Java特有的关键字。其中:

  • 抽象类:用来修饰类,表示该类是抽象的,无法实例化。主要用于继承。
  • 接口:用来声明一组方法,但是不能够实现这些方法,用来约束继承该接口的类必须实现这些方法。

下面是一个Java代码示例:

public abstract class AbstractClassExample {
  public abstract void eat();
}

public class InterfaceExample implements Interface1, Interface2 {
  public void method1() {
    System.out.println("Implementation of method 1.");
  }

  public void method2() {
    System.out.println("Implementation of method 2.");
  }
}

public interface Interface1 {
  public void method1();
}

public interface Interface2 {
  public void method2();
}

总结

Java修饰符是控制程序类、方法、变量和常量访问权限的关键字。Java中有四种访问修饰符用来控制访问:public、private、protected及默认访问修饰符;有两种继承修饰符:final和abstract;有两个多态修饰符:static和final;抽象类和接口也是Java特有的关键字。掌握这些关键字可以让Java程序员更好地管理程序中的代码。