Demo9_接口

多实现

package test02;

public class Demo9_Interface {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    abImpl a = new abImpl();
    a.show1();
    a.show2();
}

}
//抽象类中的方法全是抽象的,这时可以通过另一种特殊的形式体现
//用接口表示 interface

/*
* 接口中的成员已经被限定成固定的几种
* 1.定义变量。必须是固定的修饰符,public static final(修饰的常量全部大写) 所以接口中的变量也称之为常量
* 2.方法也是固定的修饰符public abstract 接口中的成员都是公共的
* 特点:
* 不可以创建对象
* 必须覆盖掉接口中所有的抽象方法子类才能实现实例化。否则,子类是一个抽象类
*
*/
interface ab//定义了一个阿布的接口
{
public static final int NUM=3;//可以简化:int NUM=3;
public abstract void show1();//可以简化:void show1();

public abstract void show2();

}
//接口的实现类
//定义子类去覆盖接口的方法。子类必需和接口产生关系,类与类之间是继承,类与接口是 实现关系,通过关键字implements
class abImpl implements ab
{
//重写接口中的方法
@Override
public void show1() {
// TODO Auto-generated method stub
System.out.println(“a”);
}

@Override
public void show2() {
    // TODO Auto-generated method stub
    System.out.println("b");
}

}
//接口最重要的体现:多实现
/*解决了多继承的弊端。将多继承这种机制在Java中通过多实现完成
*
* 弊端:多继承时当多个父类具有相同功能时子类调用产生不确定性
*
* 为什么能实现呢?
* 接口没有方法体,由子类来明确
* interface A
* {void show(){}}
* interface B
* {void show(){}}
* interface C Implements A,B//多实现
* {public void show(){}}
* */
/*基于接口的拓展
* 1.子类通过继承父类的扩展功能,通过继承拓展的功能都是子类的基础功能
*
* 2,如果子类想要继续扩展其他类中的功能?这时候就需要接口来实现完成
*
* 3.接口的出现避免了单 继承的局限性,父类定义了事物的基本功能,接口中定义了事物的拓展功能
* */
/*
* 类与类是继承关系
* 接口与接口是继承关系,多继承
* 类与接口是实现关系
*/

猜你喜欢

转载自blog.csdn.net/mingxu_W/article/details/81333801