java 构造函数注解(构造函数的访问修饰符)

构造方法可以处于public、protected、private和默认四种访问级别之一。

public

public这里就不多说了

private

当构造方法为private级别时,意味着只能在当前类访问它,不能被继承,不能被其他程序用new创建实例对象。可以对比其他几种修饰符的作用:abstract修饰的类,不允许被实例化,这点和private修饰构造方法相同,但abstract修饰的类可以被继承,拥有子类,可以创建子类的实例;final类禁止被继承,这点和private修饰构造方法相同,但是final类可以用new创建实例对象。

protected

如果构造函数是protected,那么该类可以继承,可以在被包内其他类中产生实例,但是无法在包外或者子类以外的地方产生实例.

看一下下面的程序

package com.ustc.sub;

public class Base {

protected Base() {

System.out.println("haha");

}

}

package com.ustc.sub;

public class ProtectedDemo extends Base {

public ProtectedDemo() {

super();// 调用父类Base的构造函数,可以调用因为类的访问修饰符为protected

}

public static void main(String args[]) {

ProtectedDemo obj = new ProtectedDemo();

Base objBase = new Base();

}

}

package com.ustc.sup;

import com.ustc.sub.Base;

public class ProtectedDemo1 {

public static void main(String args[]){

Base objBase = new Base();//不能调用因为访问修饰符为protected

}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

作用域 当前类 同一package 子孙类 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

不写时默认为friendly

子孙类可以在同一包,也可以不一个包,此时以最大权限为准

java 构造函数注解(构造函数的访问修饰符)(1)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页