00:00
行了,同学们,那咱们接下来继续还是看我们接口的基础语法吧,行吧,哎,我们把这个接口的一个基础语法看一下。啊,然后呢,我们这个。再往下进行下一个章节啊,我们来看下面这个,呃,这个接口,这是在哪个章节,这个笔记我觉得可能得换一下了,因为这个是什么呀,叫做。DAY20的一个课堂笔记,是不是那这块这样我们点右键啊,再去新建一个文件,这个文件我们叫DAY21。21的一个课堂笔记。来,我们写上叫做DAY21的一个课堂笔记。来,我们是抽象类。和接口,以及抽象类和接口的区别。是吧,第一个呢,实际上是什么呢?是抽象类的基础语法是不是,哎这个呢,见什么呀,昨天笔记啊,昨天笔记啊。
01:06
来第二个就是接口的基础语法啊,再往下呢,就是关于什么呀,哎,接口在开发中的作用。啊哎,接口基础语法呢,我再把这个昨天的这个笔记啊,我复制一份啊就在这儿。我拿来啊。拿过来放到我第21天这块啊,放过来放到这儿。然后我目前呢,正在进行接口的一个基础语法这一块。啊,行吧,第20天的笔记我就给它关了啊。好了,那么这个代码呢,我们再看一看放到什么地方啊。来代码的话,咱们点一下这个,点一下加product加点一下零二加Y。然后这块呢,我们有一个16章,第16章啊,应该就在这儿,昨天有第15章的看不见是吧?在加YC里边啊,在这有个第15章是吧?这里src你看这个代码吗?是final啊,都在这儿啊,有一个同学没找到啊,有没找没找到来在这啊。
02:05
CHAPTER16。接口的基础语法是不是来,首先我们先CMD切进去。De星class。嗯。来,你看我们在这实际上就写了一个程序,是不是来咱们接下来把这个程序再打开吧,咱们看一下啊,这是昨天我们讲的这个基础语法。各位啊,讲的基础语法你看。是不是?哎,那接下来呢,我就不在这个里边接着写了啊,我干什么呢,我再去新建一个行吧,我再新建一个啊。来我们这儿写上叫test什么呢,零二。还是接口的一个基础语法,各位啊,还是接口基础语法,那么接口这块,我把昨天这个这个MY这个接口拿过来行吧,这个我的数学接口啊,我给它复制一下啊。
03:00
复制之后呢,我直接这个就关了,各位啊,就不用了,我在test02.java里边,这是我刚才新建的,我粘过来啊,这是我的接口,然后该删的删啊,你比如像这个我就删掉了。啊,像这些东西我都删掉了啊,删掉都删掉,然后这个呢,我也删了,我只留两个方法,一个常量啊,不管说这个常量用得上用不上。哎。就这么一个接口啊,一个接口。那么接下来呢,我们继续往下啊,往下讲解什么呢?我说了还是往下继续学习我们接口的基础语法,比如说现在呢,我们在这里干什么呀?哎,去写一个类,各位。啊,写一个类。编写一个类啊呃,标上去这个类啊,是一个非抽象的类。啊,非抽象的类。
04:01
比如说吧,我这个类呢,我起个名啊叫class。这个名字随意啊,名字随意。名字随意看清楚了啊。这个名字呢,我叫什么呢?我随便写吧,就叫ABC也行,是不是,反正是一个类名。或者说我起一个名字叫myma吧,叫IMPL啊这这这这个名字你你你别别别别多想啊,这个名字随意啊,这个类名是随意的。啊,这个类是一个什么呀?非抽象的类啊,注意这里叫非抽象的类,然后呢,这个类的名字是随意的啊,类的名字是随意的啊。然后呢,接下来你这个是一个完全什么抽象的对不对,哎是一个特殊的什么,哎抽象类完全什么,哎抽象的叫做什么,哎接口是不是,那么我们这个。类和类之间叫继承。明白吧,注意啊,就是说我可能还是要在这块呢,给大家写一下这个结论。
05:07
结论啊,叫接口的基础语法,首先第一点类和类之间叫做什么继承啊。叫做继承,那么类和接口之间呢?之间叫做实线。啊,别多想啊,别多想,你仍然可以将实现看作继承。啊,就这里呢,我希望大家能够在思想上啊,能够做一个转变。那么这个接口呢?它是一个什么呀?抽象类其实是一个特殊的抽象类,完全抽象,它改了个名叫接口,声明时用interface这个单词去声明,那么我们这个类呢,是一个非抽象的类,非抽象类呢,我们说了类和类之间以前叫什么?叫继承是不是?哎叫。
06:05
继承。那么类和类叫继承,但是我们类和接口之间啊,叫做实现,但是呢,我这里再强调一下这个实现你可以。把它看作是什么呀,继承啊,继承使用什么呀。单词或者叫关键字完成,如果是实现的话,你就使用什么呀,叫E,你看啊这。明白吧,你得用这个单词了啊,单词变了,不是这个单词,是这个单词了。对,叫。写个单词啊,所以这块呢,我们就是啊后把这个接口的名字拿过来放到这儿。
07:09
那这个呢,我说了,这个其实就是实现,实现可以看作是继承。明白吧,那大家想想,如果一个子类去继承父类的话,而父类又是一个完全抽象的一个抽象类。那大家是这个是一个非抽象的啊。这个前面并没有加abstract,没有加你是一个非抽象的类,所以大家思考一下,来这里跟我互动一下,我直接编译会有什么问题。互动一下,来互动一下,这里直接编译会出现什么问题。就这里直接编译它会出现什么问题啊。就这个ins我已经说了啊,你可以把它看作是继成。继承啊。
08:02
方法没有重写对。方法没有接口的实现类方法报报错,未重写,接口中的方法没重写,我觉得大家呢,已经听出感觉来了啊,非常非常不错,就你照着昨天那个学呗,昨天那个是怎么回事啊,昨天那个只不过是一个抽象类,现在变成了接口,而我说接口你就可以看成是一个特殊的抽象类,里边不是抽象方法吗?这是不是抽象方法呀?而且我也很清楚的告诉你,实现这个东西可以看作是继承。可以看作是继承,对吧,你子类去继承父类的话,他会把这个抽象方法怎么着啊继承过来,你明白吗?会把这个抽象方法继承过来,那我问你抽象方法是不是必须出现在抽象类里边。对吧,哎,那我问你加一个abstract呢,这个有事吗,各位。编写一个类,假如说这个类是抽象的。这样行不行?
09:02
就这样会编译,这样编译编译能通过吗?能不能通过?抽象类里边能不能有抽象方法?那你应该张口就来呀,可以吧,哎,没问题啊,没问题,所以你要这么写,那就没问题了,你看这样写没问题。来我们得编译一下,得测试一下啊,你看Java c啊,TEST02再加va走。哎,没事,你看没事是不是,哎编译生成了什么呀,叫myma和my ma I PL这样一个类。啊,生成了没问题。这样做是没问题的啊,这样没问题,但如果说。你要是这么干,这个得注释掉啊,要不然类名重了。如果这么干,那就报错了,就100%报错。
10:02
啊,100%报错,各位啊,报错来走。你看说my ma I PL啊,不是抽象的,并且未覆盖my ma中的抽象方法,什么subt你看见没有?是吧,哎,你拿过来啊,我直接干啥呢,我我我放到这这报错了。这报错了。对吧,哎,然后是括弧啊。所以这样不行,那这个是错误的,你应该怎么办呢?修正。怎么修正呢?诶你需要在这里呀,把这些方法干啥呀。常量不用管各位啊,常量自动就继承过来了,你不用管,那再往下呢,这块你得加实线了,你得重写一下对吧?哎,实现或者叫重写接口中的方法。
11:04
重写或者叫覆盖,或者叫实线,各位啊,通常我们一般都叫实线。通常叫做实现啊,那么实现的话,你得把它去了加个大括号吧,你得在这块加一个public吧。对吧,因为接口里面方法都是公开的。诶,我问大家一个问题啊,这样我加一个public在这儿,我在这块呢,我加一个大括号,这个方法要想编译通过是不是有返回值啊,你看,所以在这块return呗,A加B行吧,这个的话return什么呀?A减B呗,好,这是减法啊,上面这是加法,我写完之后呢,大家看这次是不是就行了呢?对吧,你少一个方法行不行,比如说这块,我们把这个注释掉,我们只写一个sum方法,只把这个方法给它实现了,下边这个不写行不行不行。
12:03
对吧,你一下。是不是报错呀,所以这块呢,你得把这个也放开,这两个都放开。明白吧,哎,你再去编译你看。就没事了吧,没事了。没事了各位啊,来这里有一个非常非常重要的结论。五颗星。啊,五颗星12345什么结论,各位,就是说当一个非抽象的类。实现接口的话,必须将接口中所有的抽象方法。全部实现。或者叫覆盖或者叫重写都行啊,这是我们刚才讲解的这个结论,各位。啊,你只要记住这个结论就行,你不这么干不行。
13:01
啊,不这么干不行啊。
我来说两句