我是靠谱客的博主 美满指甲油,最近开发中收集的这篇文章主要介绍Java权限修饰符(包括Java8 default介绍)权限修饰符default关键字介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 权限修饰符
    • 概述
    • 不同权限的访问能力
  • default关键字介绍
    • 举例

权限修饰符

概述

在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限,

  • public:公共的。
  • protected:受保护的
  • default:默认的
  • private:私有的

不同权限的访问能力

publicprotecteddefault(空的)private
同一类中
同一包中(子类与无关类)
不同包的子类
不同包中的无关类

可见,public具有最大权限。private则是最小权限。
编写代码时,如果没有特殊的考虑,建议这样使用权限:

  • 成员变量使用 private ,隐藏细节。
  • 构造方法使用 public ,方便创建对象。
  • 成员方法使用 public ,方便调用方法。

小贴士:不加权限修饰符,其访问能力与default修饰符相同

default关键字介绍

今天复习偶尔看到了有default关键字,这是有生之年第一次见到这个关键字,然后百度了一下,发现是Java8的新特性,所以干脆详细学习一下,整理了下面的东西。

default常用于接口中,从它的中文意思行来看,大概能猜个差不多,我们本来写Java接口的时候,是不能有方法体的函数,就类似于C++中的虚函数,default关键字在接口中修饰方法时,方法可以有方法体,来看一个例子。

举例

Default类

public interface Default {
 
    default public void method(){
        System.out.println("接口中的方法");
    }
}

一个接口,method方法在使用关键字default后可以有方法体了。

public class DefaultImpl implements Default {
 
    @Override
    public void method() {
        System.out.println("类中的方法");
    }
 
    public static void main(String[] args){
        Default d = new DefaultImpl();
        d.method();
    }
}

DefaultImpl实现了Default接口,最终运行结果:

类中的方法

而此时如果Default接口再加一个方法呢,如果这个方法没有default关键字修饰,则DefaultImpl没有实现这个方法就会报错,这就体现了default关键字的作用。我们继续修改Default接口。

Default接口如下:

public interface Default {
 
    default public void method(){
         System.out.println("接口中的方法");
    }
 
    default public void doSomeThing(){
         System.out.println("在接口中搞事情");
    }
}

DefaultImpl并没有重写doSomeThing方法

public class DefaultImpl implements Default {
	@Override
	public void method() {
	     System.out.println("类中的方法");
	}
	// 此时没有去重写接口中的方法doSomeThing
	// 在这里会默认生成一个,子类对象调用时候会直接使用接口中的doSomeThing方法
	public static void main(String[] args){
	    Default d = new DefaultImpl();
	    d.method();
	    d.doSomeThing();
	}
}

运行结果如下:

类中的方法
在接口中搞事情

运行结果符合Java多态的特性,default关键字可以让接口中的方法可以有默认的函数体,当一个类实现这个接口时,可以不用去实现这个方法,当然,这个类若实现这个方法,就等于子类覆盖了这个方法,最终运行结果符合Java多态特性。

最后

以上就是美满指甲油为你收集整理的Java权限修饰符(包括Java8 default介绍)权限修饰符default关键字介绍的全部内容,希望文章能够帮你解决Java权限修饰符(包括Java8 default介绍)权限修饰符default关键字介绍所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部