接口:主要是对行为进行抽象
默认数据成员为public static final
默认的成员方法为public abstract
接口的实现 :可以实现多个接口
接口和抽象类的区别:
接口可以被实现(继承–解决了Java的单继承的问题)多个
抽象类只能被继承一个
抽象类可以拥有非抽象方法 接口内都是抽象方法
接口的数据成员变量都是public static final
接口是对行为的一种抽象 抽象类本身是对类整体的抽象
interface A{
int age = 10;
void fun1();//不能有具体的实现
}
interface B{
int b = 100;
void fun2();
}
- 接口的实现 你可以实现多个接口
class C implements A,B{
@Override
public void fun1() {
System.out.println("A.fun1");
}
@Override
public void fun2() {
System.out.println("B.fun2");
}
}
- 接口的继承
interface Mobike{
public void scan();
}
interface Ofo{
public void hand();
}
abstract class Bike{
public abstract void fun1();
}
class FlyingDove extends Bike implements Mobike,Ofo{
@Override
public void hand() {
System.out.println("Ofo.hand()");
}
@Override
public void scan() {
System.out.println("Mobike.scan()");
}
@Override
public void fun1() {
System.out.println("Bike.fun1");
}
}
interface A{
public void fun1();
}
interface B{
void fun2();
}
//接口和接口之间可以继承
//接口不可以实现接口
interface C extends A,B{
public void fun3();
}
class X implements C{
@Override
public void fun1() {
}
@Override
public void fun2() {
}
@Override
public void fun3() {
}
}
- 小例题:普通门,可以 open close,实现一种报警门 alarm
interface Alarm{
public void alarm();
}
abstract class Door{
public abstract void open();
public abstract void close();
}
class AlarmDoor extends Door implements Alarm{
@Override
public void alarm() {
// TODO Auto-generated method stub
}
@Override
public void open() {
// TODO Auto-generated method stub
}
@Override
public void close() {
// TODO Auto-generated method stub
}
}