谁帮我解释一下下面的两个问题啊!急……

2025-01-01 02:54:07
推荐回答(4个)
回答1:

JAVA的接口本来就设计成可以继承的。和类的继承差不多。

Runnable run =new Runnable(){ ……}这句并不说接口可以实例化,而是实现了一个匿名内部类。
实际上这句的全部代码应该是这样的
Runnable run =new Runnable(){
public void run() {
//todo
}
}
这里实际上有一个类实现了Runable接口,并实现了其方法。但是这个类并没有名称,我们直接对他进行了实例化的工作,并不是说Runable直接实例化了。

回答2:

一句话,接口就是类,实现接口就是继承这个接口类。接口本来就是为了弥补java一个类只要一个父类而出现的。Runnable run =new Runnable(){ ……}这种写法就是方法内部类了。不要把接口和类分开看,他们原本就是一家人,只不过是兄弟吵架分家了而已,本质还是一样的。只要把实现接口当做继承来看,他们就是一个东西。
而且接口本身就是一个抽象类,这是啥意思?就是接口这个本身就是类但是不干事情,定义的方法都是空的,好吃懒做而被赶出家门,但是有的人就是想多干事情就收养他了,就是帮他把那些没做的空方法给实现了。本质上类、接口都是一个样,只不过一个是好吃懒做的私生子,而一个是名正言顺的儿子。私生子只知道他爹是谁,知道他爹加啥名字,干啥工作的,但就是什么都没有得到。而且儿子就是把老子的东西都继承下来了,除了老子死了带进棺材的,就是有名有实了。就这么一区别。

回答3:

因为 一个类 如果继承了 父类,就不能继承其它的类了,Java加人接口的机制可以让我们在继承的同时,也可以 ‘实现’其它接口,叫实现不是继承.

回答4:

实际上接口被继承以后,实例化的是实现该接口的类。