首页>阅读>

034-【面试题】Java中接口的基类是Object吗

动力节点教育浏览:70

大家好,我是黄豆啊。那么,关于这个问题实际上是一个面试题啊。那么为什么我会这样去问一个面试题呢?很简单呢,我们来看这里就是一个光秃秃的接口了,对吧,然后呢,我们通过这个长阳池里面发现一个问题啊。这个常量词里面我们不是说哎,他会把自己定义的这个类,因为接口他也算是吧,这个他也支撑,你看这里写的有啊是吧?对类和接口他都会做一个符号引用,然后扔到长梁词里面,哎,给它一个卡是inform类型扔进去哈。哎,有了对不对。但是问题是下面这有一个over jack. Overjack的怎么去解释是吧?Object是这个接口的积累,因为我们再来看看student啊,我们看看简单点儿了啊。比如说abstract CE是吧?这个东西它有两个而不就要给它c一使他定的自己,然后这小子是谁呢?诶,他的父亲是吧。然后再来看看person高山的话也是一样啊。Person,首先他自己,然后他的鸡肋object。那么,哎,同理吗?对不对?哎,他自己诶点错了在这儿啊。哎,他自己然后的话呢,这小子是他夫人好。但是有一个问题,接口没有分类,也就是说接口没有超级积累,这个话怎么说呢?很简单。接口加奥东接口没有鸡肋。那如果说呢,你觉得这句话说得不好,是吧,那么我们就换一种说法,是吧家奥中接口的积累不是换句话说借口没有这种说法。明白了吗,好,那么你就不好解释另外一件事儿了。

那请问你,你这个玩意儿哪来的?是吧,那,那,那他是谁都明白了,写了。也就是说,这个Ia点java编译成克拉斯字典码里面的编译成克拉斯字典码之后,它的常量词里面确实出现了这个opejack的这个类型呢,是吧?那怎么办呢?实际上大家一定要注意我们再来看一看吧,我们来论证一下我们用反政嘛,对不对?那么按照这么说法的话,我们来想一想啊,首先第一,我们先来看托森内啊,坡上那是空的。然后呢,t圈儿内呢,哎,只寄生了坡身内我们为了不这个,这个混淆视听,我们把它给删掉,把这些都删掉,就剩这两个了啊。然后全部关掉,重新打开就打开这三个和aa的啊。好,那么我们来看看person,譬如是自己到我把它选好自己和他的鸡肋看看应该是自己和person。这样一个积累好来看看啊,刷新一下没刷新啊。你看person哎,这里还有stu啊,这里就是没有build啊,没有build啊,所以没有build又等一下啊,刷新一下好了,提前他自己和他的积累,那么也就是说呢,你要想一个问题啊,这是第一个显示啊,我们先来看这里啊。好。那么,这人看出什么呢?换句话说,Teacher它的直接积累是person,对吧?没错吧。好,那么他就不会teacher不会显示出自己的更超的超级鸡肋啊,就是他的祖宗overject。然后的话呢,我们在这里呢,再看看IA好IA的话呢,在这儿啊,再刷新一下,这个难度有点高啊。然后的话,aa是吧,里面有一个overjack好,我们再来一个Ib,那这也是一个接口了,interface啊。那么我们让怎么样呢?哎,接口呢?我继承一个我继承什么呢?哎,首先接口能不能继承普通人类呢?肯定是不行的。毫无疑问,但是啊,这个接口是可以继承接口的,只不过呢,接口继承的接口并不是继承关系,是一种组合关系,把两个接口组合出来。为什么这么理解呢,因为接口可以多继承我们再看啊。所以这里边的话呢是有些关系一定要搞明白啊。接口继承接口不是单纯的继承啊,Ib可以继承aa还可以Ic说明它们是一个组合关系,看明白没好,这是第一个啊。

好,我们把这个ic删除,删除掉。删除删除,然后的话我们丢的一些啊,我们要说明一个什么道理呢,慢慢的看啊,这一定要论证的啊。把ib给它弄出来。看一看IB里面有什么好,我们现在干一件事儿,我们要想我们先不打开,要想首先它有三个对不好打个勾勾先啊,那是哪三个呢?首先按照我们已经说的ib,他自己一个,对吧,然后的话呢,它的直接的负类aa?一个,对吧,那为什么有三个应该是两个呀?我们再看,还没看明白没关系。再看person一个类,它里面有个overject. Teacher,一个类teacher寄生的person。那么teacher的话也只有两个,因为teacher会把直接腹类弄出来。那么ib呢,为什么有三个了呢?好,我们来看看到底是哪三个,第一个是。Ib没问题,第二个是overject诶,多了个oppo jack,对吧,Ia也出来了,Ia呢?我们从语法上来说是ib的,父亲。因为他们这种继承呢,我再说明一遍啊,他们是组合关系啊,但在这里还是要把a给体现出来。但是有一个问题。Overject也出来了。换句话说,他不光把自己的父亲弄出来了,也把自己的祖宗弄出来了,有点儿乱套。

呃,不成文有问题了,所以这已经出现问题了。如果我们先说个如果如果overject是所有机口,人家所有切口的鸡肋,那抹ib,这里是不会出现渐渐的,因为一旦这么说,一旦这么成立的话。那么overjack是不会出来的。你想啊,如果他要是真这么设计,那T项里面也会出来overjust,它主要是为了连接的作用,那么这个设计主要的目的是为什?因为听一下呢,哎,连上了我们看啊,这里有个跳转功能,你马上就发现连上了Portion,我们跳到坡声里面,坡声里面又连上了overjack的又会跳过去,这就是符号引用的作用,你看又跳过来看,没有他就不会啊,他一定是不会多吃,一举在提前里边再多吃一句,搞一个什么呢?overjack的project只需要出现一次就行了。那接口为啥就出现了多次呢?所以这里面。大家一定要注意,他并不是说这一句话就能证明看IA啊,不是说接口里面一个空接口,里面啥也不写。你既然有这个overjack的出现,就证明这个overjack的是接口的积累,这是错误的,因为借口没有积累,那凭什么又出现了overjack的呢?因为这里是引用关系。简单点儿说,他肯定是这么个东西。假定啊,假定我是假定啊,我是假定因为这样假定的话,让大家看得好好看一些。我这样做是不是就成立,这样i里面有那么ip里面也有,那么是不就可以成立成立一件事儿。成立一件什么样的事儿呢?IA刷新一下里边。会有一个object IB一遍,也会有一个overjack的,只有这样他才能成立啊。因为overjack的不是aa,也不是ib的共同期内,所以它实际上是一个引用。但是我们没有写呀。是吧?我们根本都没有写,大家可以看啊,就像这样,我们根本都没有写,根本都没有写。为什么这里还有呢?实际上官方已经给出答案了啊。

那么官方给出的答案是什么答案呢?也就是说,在接口里面。他会隐士的去实现,注意,在接口里面会隐士的去实现overjack里面的所有方法,那么overjack里面的有些方法必须要得到overjack的引用,因此导致接口里面是常有一个隐士的,常有一个overjack的引用。因此你们会看到接口里面什么都不写,他就会有一个这样一个常量进来,而这个overjack的常量不是接口的鸡肋,而是接口的一个。引用啊,换句话说,任何的一个接口里面都应用到了一个overjack的对象的一个实力。就是这么简单,一个道理啊。因此,这个java的接口的鸡肋是不是偶尔见了他呢?斩钉截铁地说,不是好,就是这么个道理啊。好了,那么没有交三年呢,赶快交啊,有什么疑问的,欢迎到评论区下面去评论啊,然后弹幕走一波。因为这个问题啊,困扰了很多人,因为我接过很多人关于问的这个问题,是吧?当然这个也问得非常的深啊。当然这也是一个面试题,对吧?你能谈到字节码里边为什么有这个是因为呀接口啊。实现了object里边的所有的公共方法。你能达到这一程就不得了了,而且还告诉他,这个任何一个接口之间码里面都还隐私的有一个opeget引用。为什么呢,你能告诉它,它里面有个喀什,因佛常量常里面在,这就是高手。明白了吧?

发布时间:2024-03-27 08:24:36