日志文章

2019-12-17 aflfte2011

接口的使用

package com.aflfte.oop;
/**
 * 接口的使用
 * 1、接口是比抽象类还要抽象的抽象类
 * 2、接口的所有方法都是抽象方法
 * 3、实现规范与实现的分离
 * @author jinhao
 *接口就类似于我们的法律和契约
 *接口的写法
 *[访问修饰符]  interface 接口名   [extends  父接口1,父接口2…]  {
 *常量定义;  
 *方法定义;
 *}
 *1. 访问修饰符:只能是public或默认。
 *2. 接口名:和类名采用相同命名机制。
 *3. extends:接口可以多继承。
 *4. 常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。
 *5. 方法:接口中的方法只能是:public abstract。 省略的话,也是public abstract。
 */
public interface MyInterFace {
int A=100;//接口里面只能定义常量
void test();
}

class MyClass implements MyInterFace{

@Override
public void test() {//必须实现接口定义的方法
System.out.println(A);//接口里面的常量可是随便使用
System.out.println("MyInterFaceTest01");

}

}

示例1:
package com.aflfte.oop;
/**
 * 测试接口的使用
 * @author jinhao
 *
 */
public class TestInterface {
public static void main(String[] args) {
Volant v=new Angel();
v.fly();
Honest h=new GoodMan();
h.HelpOther();
}

}
/**
 * 飞行接口示例
 */
interface Volant{
int Fly_HEIGHT=100;
void fly();
}
interface Honest{
void HelpOther();
}
class Angel implements Volant,Honest{//实现类可以同时继承多个父接口

@Override
public void HelpOther() {
System.out.println("Angel.HelpOther();");

}

@Override
public void fly() {
System.out.println("Angel.fly();");

}

}
class GoodMan implements Honest{

@Override
public void HelpOther() {
System.out.println("GoodMan.HelpOther();");

}

}
class Nr implements Volant{

@Override
public void fly() {
System.out.println("Nr.fly();");

}

}

接口的多继承示例:
package com.aflfte.oop;
/**
 * 接口的多继承测试
 * @author jinhao
 *
 */
public class TestInterFace2 {

}
interface A {
void Ta();
}
interface B{
void Tb();
}
interface C extends A,B{
void Tc();
}
class Cs implements C{

@Override
public void Ta() {
// TODO 自动生成的方法存根

}

@Override
public void Tb() {
// TODO 自动生成的方法存根

}

@Override
public void Tc() {
// TODO 自动生成的方法存根

}

}

« 普通内部类 | 抽象方法与抽象类»