abstract
class和interface是Java语言中对于抽象类定义进行支持的两种机制。它们之间区别:
接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的;
代码演示:
接口A
public
interface
A
{
public
abstract
void
play()
;
public
abstract
void
beFriendly();
}
接口B
public
interface
B
{
public
abstract
void
play()
;
public
abstract
void
beFriendly();
}
一个类实现多个接口@Service("weixinPay")
public
class
WeixinPay
implements
Pay{
@Overrid
public
Object
pay(Map
map){
return
"weixinpay";
}
}
接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量;
实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现;
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现;
接口可以实现多重继承,而一个类只能继承一个超类;
扩展资料:
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”。
功能
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)
接口:public
class
x{}
1例如:public
class
void
a
implement
x{实现接口方法}
2例如:
public
class
void
b
implement
x{实现接口方法}同样可以实现接口X
代码演示:
接口A
public
interface
A
{
public
abstract
void
play()
;
public
abstract
void
beFriendly();
}
接口B
public
interface
B
{
public
abstract
void
play()
;
public
abstract
void
beFriendly();
}
一个类实现多个接口@Service("weixinPay")
public
class
WeixinPay
implements
Pay{
@Overrid
public
Object
pay(Map
map){
return
"weixinpay";
}
}
扩展资料:
接口是常量值和方法定义的集合。接口是一种特殊的抽象类。
java类是单继承的。classB
Extends
classA
java接口可以多继承。Interface3
Extends
Interface0,
Interface1, interface……
不允许类多重继承的主要原因是,如果A同时继承B和C,而b和c同时有一个D方法,A如何决定该继承那一个呢?但接口不存在这样的问题,接口全都是抽象方法继承谁都无所谓,所以接口可以继承多个接口。
注意:
1)一个类如果实现了一个借口,则要实现该接口的所有方法。
2)方法的名字、返回类型、参数必须与接口中完全一致。如果方法的返回类型不是void,则方法体必须至少有一条return语句。
3)因为接口的方法默认是public类型的,所以在实现的时候一定要用public来修饰(否则默认为protected类型,缩小了方法的使用范围)。
//A接口interface
A{
public
int
getA();
}
//B接口
interface
B{
public
int
getB();
}
//实现了某个接口必须实现其全部的方法
public
class
ImpAB
implements
A,B{
public
int
getA()
{
return
0;
}
public
int
getB()
{
return
0;
}
}
扩展资料:
功能
在Java语言规范中,一个方法的特征仅包括方法的名字,参数的数目和种类,而不包括方法的返回类型,参数的名字以及所抛出来的异常。
在Java编译器检查方法的重载时,会根据这些条件判断两个方法是否是重载方法。但在Java编译器检查方法的置换时,则会进一步检查两个方法(分处超类型和子类型)的返还类型和抛出的异常是否相同。
接口实现和类继承的规则不同,为了数据的安全,继承时一个类只有一个直接父类,也就是单继承,但是一个类可以实现多个接口,接口弥补了类的不能多继承缺点,继承和接口的双重设计既保持了类的数据安全也变相实现了多继承。
Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。但是接口不是类,不能使用new
运算符实例化一个接口。
Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,Java接口可以有public、static和final属性。即接口中的属性可以定义为
public
static
final
int
value=5。
接口把方法的特征和方法的实现分割开来。这种分割体现在接口常常代表一个角色,它包装与该角色相关的操作和属性,而实现这个接口的类便是扮演这个角色的演员。一个角色由不同的演员来演,而不同的演员之间除了扮演一个共同的角色之外,并不要求其它的共同之处。
参考资料来源:百度百科--java接口
参考资料来源:百度百科--Java
编程语言
通过内部类实现接口,解决多个接口中方法重名问题
一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现。
例如下面这串代码就可以实现一个类多个接口:
interface
Machine
{
void
run();
}
class
Person
{
void
run()
{
System.out.println("person
start");
}
}
public
class
Android
extends
Person
{
private
class
MachineHeart
implements
Machine
{
public
void
run()
{
System.out.println("machine
start");
}
}
Machine
getMachine(){
return
new
MachineHeart();
}
public
static
void
main(String[]
args)
{
Android
android=new
Android();
Machine
machine=android.getMachine();
machine.run();
android.run();
}
}
扩展资料:
实现一个类多个接口的好处,当实现多个接口时,如果两个接口有同样的方法,那么实现一次就可以了。
以上代码可以实现编译,说明接口可以继承多个接口。为什么不能实现类的多继承,主要是防止多个类有相同的方法名,然而方法体不一样,子类就比较难选择了。
参考资料百度百科java
//A接口
interface
A{
public
int
getA();
}
//B接口
interface
B{
public
int
getB();
}
//实现了某个接口必须实现其全部的方法
public
class
ImpAB
implements
A,B{
public
int
getA()
{
return
0;
}
public
int
getB()
{
return
0;
}
}
已经很简单的了...
呵呵....
祝楼主早日成功哈!!!