00:00
好,接着我们看第四个这个改进,第四个改进呢,是一个语法上的一个改进,这个接口啊,又拿这个接口开刀了,在JAVA8当中呢,这个接口已经被调整过了。呃,让接口中可以有静态方法和默认方法,哎,只要有这个静态方法和默认方法的存在,你会发现已经接口不纯粹了啊,原来呢,就是特别纯纯的抽象方法是吧?啊,现在的话呢,说接口已经可以有方法体了。啊,有方法体了,这是JAVA8里边的啊,就是静态方法和默认方法,然后JAVA9呢,说你呀,还可以有私有方法。啊,就这个呢,就更进一步啊,其实按说哈,就按照咱们的理解,你要扎二班呢,让这个接口有这个静态方法,或者说默认方法,说白了就是有方法体的这种方法存在了,这个接口已经是比较偏向于类了。就是你不用非得说让这个实现这个类去重写了,因为呢,你已经已经有方法体了,可以直接用了,说白了接口呢,就越来越像类。
01:01
实际上啊,他应该在八里边儿呢,就应该加入这个私有的这个事儿。啊,就是它可以放到九里边了啊,应该我觉得是考虑不周啊,你想你既然能够让一个接口里边有方法体了,比如默认方法,当然默认方法通常它就是它的权限就是public的哈,那你也应该让他有私有的方法。因为咱们在定义类的时候,你想咱定义类的时候呢,定义一些方法,总可能会有一些方法呢,用不着让外边去用啊。那我们在这里边去用,哎,我们就可以把这个方法呢,写成叫private了,那现在你这个接口,接口里边说了都是这个默认方法,其实就跟原来这个咱们在类里边写一个非静态的方法是一样的了,啊你这个实现类呢,继承实现它以后直接默认方法呢,你直接可以调,你还可以去重写,那你自然而然的其实就该有私有方法。因为呢,那你这个默认方法当中,有可能它一些逻辑,那不就是重复的吗?那你重复的逻辑我们就在接口里边自己定义好呗,你自己定义好了,那你实际上也没有必要让子雷让时间类去用,那你就应该加入private啊,哎,我觉得是他考虑不太周全,哎在酒里边给补了一下,哎就这个样子啊,在咱们这块看一眼吧,在咱们这个里边,这个Java这个里边,我们现在呢去。
02:18
哎,新建一个接口啊,哎,这个接口这样写了,比如说就叫这个MY啊in inter,诶face啊这是一个接口,嗯,看一眼咱们现在用的是什么版本,哎,这个这里边这是用的九这个版本,别老报错啊,看看这个信息。哎,这块有问题是吧,把这个呢,你让他识别某一个版本啊八也行,这里边咱也没有涉及到其他的新特性啊,行,然后呢,还回过来,那这个就OK一下啊。嗯,刚才看了咱们用的。忘了是吧,11是吧,呃,用的11,其实这块你调整这个,呃调整这个九也可以啊,或者你在呃这个位置看这块呢,相当于是决定的是我们当前这个module你用的是哪一个JDK,其实这块还不是最核心的啊,呃,比如说你这块用的是11列这个JDK,但是呢,你主要得看这个位置,S这块呢,你看我们在当前这个modu下,你能够识别到哪个语法。
03:15
啊,比如说这块呢,我们就想让他在九里边去看一下,或者我们先看一下这个八里边也行,哎,我这时候OK一下,那这事呢,是我们相当于在扎VA8这样一个环境当中,在这个环境当中,我们说呢,一方面我可以定一个叫abstract,哎这样的一个,或者我把这个写到前面啊。哎,Method叫abstract,这呢就是一个抽象方法,哎,除此之外呢,我们还可以定义这种叫静态方法啊,叫static VO,我这就叫做method static。行,这个呢,注意它是有方法体的了啊,这里边我们写个输入语句说呢,诶我是接口中的静态方法,好这个你要注意,就是前面呢,我们写这个权限哈,那这个权限是什么呀。
04:05
是默认权限吗?对不是啊,它是public的权限,这个也是一样,都是public这块都是啊,那接下来诶,我们还有这个叫default的这个方法。哎,我还有这里,我就要method叫。这呢我们说我是,呃接口中的叫默认方法,这个也是一样,这个默认方法前面呢,省略的权限也是public,这个之前有同学问我这个事儿啊,说这个default它是不是这个权限就是这个默认啊,不是啊,这个default它是个关键字了,它这个目前它这个位置可表示的不是权限。咱们Java中这个默认权限呢,也不用你写depot,对啊,这个呢,几个省略的都是public的权限啊,这要注意一下。诶,如下的相当于是三个方法的权限,呃,修饰符,哎,都是public啊。
05:05
行,这要注意一下,这呢是咱们这个JAVA8的这个特性,那这个定义完以后呢,你看我们接下来当我试图去定一个叫私有的方法的时候啊,Private VO叫private。哎,在这里边,然后我们写个输入语句,说我是接口中的叫私有方法,哎这个时候呢,他就报错了,显示的信息说呢,这个private是不允许在这出现的,这呢是咱们在这个八里边啊,你看我现在去改一下,哎,我把这个第13把它从八改成九,然后做一个OK那就可以了。哎,那说明呢,这确实是酒里边新加入的这个特性啊。哎,这呢说JDK或者叫Java啊,这个九中,哎允许。呃,接口中,哎定义叫哎私有的这个方法,哎这样的情况啊,好这个呢,写完以后,我们下边呢,你去定一个它的一个实现类啊,这块其实就相当于是一个复习了啊,哎,我们叫MY啊,Inter,诶face的啊叫imp input就相当于它的一个实现类了啊。
06:16
哎,让他呢,首先去implements,哎,咱们的叫my interface。啊,那这块呢,写完以后,它紧接着就提示了,因为我们里边有抽样方法啊al enter,哎这呢,我们去implement methods,你看它这块提实俩就是一方面呢,是这个抽象方法,你需要呢做一个,呃,这个实现了,其实啊,或者你要重写也行,然后另外的话呢,说这个接口中有一个默认方法,说你要不要也重写一下呀,言外之意呢,就是默认方法也可以重写。咱们前面其实也讲过这个事啊,哎,那你可以把这两个这不都选中,然后OK一下,这不都过来了。啊,这呢是这个抽样方法,这个冲洗这不多说,你看这个是不是看到这个权限了。对,它就是一个public权限啊,啊,那这块呢,如果你要是不去重启,哎,我们把它注释掉,这个相当于咱们把这个JAVA8里边呢,稍微带着大家再复习一下啊,有的可能都忘了,那这个接口当中。
07:12
我们定义了一个静态的方法,哎,接口中的静态方法说只能由自己来调。哎,接口中的静态方法只能由呃接口哎自己调用,哎就是我们这是接口点,哎咱们有个master static,这是他自己调的。那这是OK的啊,说能不能让我们这个时间类去调呢,你试一下,第二,哎,你看我们去调这个叫method没有。哎,这个呢是不允许的啊,这个咱们之前讲JAVA8的时候说过这个事儿,诶接口的呃,实现类啊不能调用,哎接口的静态方法,这个说白了就是接口中这个方法就是自己要用的。
08:00
啊,这个是不允许这个时间类去掉了,然后关于这个默认方法呢,你这个时间类是可以的,但是呢,人家是不是静态了,那你必须得造个对象。啊,I input等于new一个,哎,造一个实现类的对象,哎,通过我们这个I input点你去调这个method叫default,此时呢,我没有重写。那你调的呢,就是接口中的这个。哎接口中的默认方法,然后如果你要是重写了,哎这个打开,哎这个里边你可以写一个输出语句说呢,哎时现类哎重写或者叫。哎,对对,这个就是重启了。咱们原来说过,说这个标准的词,抽象方法呢,一般我们那叫实现是吧,实现一个抽象方法,你要是个有方法体的话呢,就叫重写了啊实现类呢,重写了接口中的。哎,默认方法,哎,你重写以后的话呢,这不overwe的嘛,你再去调就是你自己的这个方法。哎,这啊,这是咱们原来讲过的啊,然后呢,当你试图通过你这个所谓的实现类呢,去点说呢,你接口中还有一个叫private的方法,哎,很遗憾这时调不了,你看这写的说private一个access。
09:12
那私有的这样的一个这个通道或者叫权限也样哈,哎,不能去调了,那这时候呢,其实想说明的是,就是我们接口中的这个私有方法呢,他其实想自己用。啊,比如说咱在这里边儿啊,那就自己调。那这样就掉了。哎,它可以掉啊,它这样掉了,那你在这个呃,实验类当中,比如我们要没有重写的话。那你去调负类中那个默认方法,是不是间接的相当于就调了这个private了。哎,这样是吧,哎,这跟咱们前面讲的这个类这块呢,这个逻辑是一样的啊。行,哎,这呢,咱们才知道这个就不能掉了啊。哎,私有的。哎,私有方法,然后呢,诶不能在接口外部调用,行,这就说完了啊,这个呢,咱们想说明的点呢,就是接口中诶可以在九中定义私有方法。
10:05
啊,这个事儿刚才我说过了,其实应该在八里边就应该加上,但是呢,他可能给忽略掉了啊,既然有方法体自然而然的,你就应该有一些不想对外看到的方法在里边用的,那就应该是私有,只不过呢,在酒当中加加进来的啊。
我来说两句