Java中的四种访问控制修饰符:public/private/protected/default

  1. public: 具有最大的访问权限,对所有的类都可见。可以用来修饰类,方法,变量,接口。
  2. default:可以用来修饰类,方法,变量,接口。是默认的修饰符。任何处于同一个包的类和接口都可以访问。
  3. protected: 可以修饰变量和方法,不能修饰类和接口。相比与public,对于当子类和父类不再同一个包时,子类实例可以访问从父类继承的protected方法,不能访问父类实例的protected方法。
    4.private: 具有最严格的访问权限,访问权限仅限于该类内部。当类的成员变量不想要被其他类访问时用private修饰,也是封装的一种体现。

比较public和protected:
父类:

package model;

public abstract class Animal {
    public static String name;
    protected static int age;
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
}

同一个包中的实例:

package model;

public class Actions {

    public static void main(String[] args) {
        Cats cat = new Cats("Molly", 4);
        System.out.println(cat.name);
        System.out.println(cat.age);
    }
}

不同包中的实例:

import model.Cats;

public class NewPackageActions {
    public static void main(String[] args) {
        Cats cat = new Cats("Molly", 4);
        System.out.println(cat.name);
        System.out.println(cat.age);
//会报错 'age' has protected access in 'model.Animal'
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容