1、接口语法
interface 接口名{
//共有静态常量、抽象方法
}
2、接口的特点
(1)接口中只能存放静态常量和抽象方法
(2)Java接口是对功能拓展
(3)通过实现接口,Java类可以实现多实现
(4)一个类可以同时继承(extends)一个父类,并且实现(implements)多个接口,接口与接口之间可以使用extends实现继承
3、接口与抽象类的区别
(1)抽象类具体实现之间是一个继承关系,也就是说如果采用抽象类的方式,则父类和子类在概念上应该是相同的
(2)接口与继承有着本质的区别,接口强调的是两个类之间存在的相同行为,不去注重类之间的关系,可以使没有层次关系的类具有相同行为
(3)抽象类是一对具有相同属性和行为的逻辑上有关系的事物的一种抽象,而接口则是对一组具有相同属性行为的逻辑上不相关的事物的一种抽象
代码示例:
interface behavior
{
abstract public void eat();
abstract public void drink();
abstract public void la();
abstract public void sa();
}
class human implements behavior
{
public void eat() {
// TODO Auto-generated method stub
System.out.println("人吃饭");
}
public void drink() {
// TODO Auto-generated method stub
System.out.println("人喝水");
}
public void la() {
// TODO Auto-generated method stub
System.out.println("人拉屎");
}
public void sa() {
// TODO Auto-generated method stub
System.out.println("人窩尿");
}
}
class dog implements behavior
{
public void eat() {
// TODO Auto-generated method stub
System.out.println("狗吃狗粮");
}
public void drink() {
// TODO Auto-generated method stub
System.out.println("狗喝水");
}
public void la() {
// TODO Auto-generated method stub
System.out.println("狗拉屎");
}
public void sa() {
// TODO Auto-generated method stub
System.out.println("狗窩尿");
}
}
public class Test {
public static void main(String[] args) {
new human().eat();
new human().drink();
new human().la();
new human().sa();
new dog().eat();
new dog().drink();
new dog().la();
new dog().sa();
}
}
运行结果:
人吃饭
人喝水
人拉屎
人窩尿
狗吃狗粮
狗喝水
狗拉屎
狗窩尿