面向对象(接口interface例子代码解析)

例一:接口特点
//定义接口—关键字interface
public interface Serviceable extends Changeable,Turnupable{
//属性—只能公共静态常量属性—就算不写这三个关键字,也是默认为这种情况
//这说明接口的关注点不在属性身上
// public static final int a = 100;
// public static int b = 200;
// public int c = 300;
// int d = 400;

//构造---接口不能有构造
//接口不能产生对象---?那接口拿来干嘛?
//1、让类实现接口,而且是多实现
//2、接口可以继承接口,而且是多继承

//行为---只能是公共的抽象方法---就算不写修饰符,也是默认这种情况
//这说明接口的关注点和丰富度是体现在行为上的,它期待?别的类型?去重写这些行为
//接口的意义就体现在这里--让没有继承关系的类共享这些行为,各有各的具体实现。

// public abstract void turnupEnginee();
// void changeOil();
//在JDK1.7以上版本,允许接口拥有实现了的方法
//但必须使用default关键字修饰。
// public default void test(){
//
// }
}

例二:接口与抽象类之间的例子
//如果一个类实现一个接口,但不能实现它的所有抽象方法,那么这个类只能是抽象类
public abstract class NewCar implements Serviceable{
}

//一个类可以在继承父类的同时实现接口
public class NewMachine extends Machine implements Serviceable{
public void changeOil() {
System.out.println(“自动化新机器可以换机油”);
}
public void turnupEnginee() {
System.out.println(“自动化新机器可以调引擎”);
}
}

//类实现接口,使用implements关键字,并且重写接口中的抽象方法
//类可以多实现接口
public class NewTank implements Serviceable,Fireable{
public void changeOil() {
System.out.println(“坦克也可以换机油”);
}
public void turnupEnginee() {
System.out.println(“坦克也可以调试引擎”);
}
public void fire() {
System.out.println(“坦克开火!”);
}
}

public class TestMain {
public static void main(String[] args) {
//接口的引用 = 实现类的对象
Hock h = new Hock();//可以看到Hock身上所有的属性,行为!继承父类,看到自己和父类的方法属性
NewPlane np = new Hock();//只能看到NewPlane身上的属性、行为!!!只有强转后才能看到自己特有的和父类的
((Hock)np).jiao();//比如
Serviceable ser = new Hock();//只能看到Serviceable接口提供的行为
((Hock)ser).jiao();//强转后也能都看到
// Fireable f = new Hock();//只能看到Fireable接口提供的行为
NewMerchanic fox = new NewMerchanic();
fox.service(h);

    //如果没有实现接口,就算具有同样的方法,也不能用接口的引用去指向它的对象Gun

// Fireable fireable = new Gun();

    SuperMan sm = new SuperMan();
    Bird bird = new Bird();
    JetPlane jp = new JetPlane();

    AirManager zhang3 = new AirManager();
    zhang3.manage(sm);
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值