面向对象——接口

package com_package1;

public abstract class Interface {
    abstract void show();
    abstract void method();

}

当一个抽象类中全都是抽象方法的时候,这时,可以将这个抽象类定义成接口。

接口是一个特殊的抽象类,初期的一种简单理解,以为着接口中的方法都是抽象方法

接口定义的格式: interface 接口名(接口内容)

interface Inter

{

//接口成员,都有固定的修饰符

//常见:1、常量,全局常量,有固定的修饰符public static final

//           2、抽象方法 ,有固定的修饰符 public abstract 

}

package com_package1;

public interface Inter {
    
    public static final int NUM = 3;
    public abstract void show();

}

接口的特点:

1、接口用interface来定义

2、接口中的的成员都有固定的修饰符

3、接口不能被实例化

4、接口必须由其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则,该子类还是一个抽象类。

5、接口中的成员都是public权限

 

定义一个接口的子类去对该类接口中的方法进行覆盖

package com_package1;

public   class InterImpl implements Inter {

    @Override
    public void show() {
        // TODO Auto-generated method stub
        
    }

}

类与类之间是继承关系,类与接口之间是实现关系

接口的好处:接口可以被多实现,这就是多继承机智哎java语言被改良后的结果,一个类只能继承一个父类但是一个类可以实现多个接口

package com_package1;

public interface A {
    public abstract void show1();
    

}
package com_package1;

public interface B {
    public abstract void show2();

}
package com_package1;

public class C implements A,B{

    @Override
    public void show2() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void show1() {
        // TODO Auto-generated method stub
        
    }

}

误区:记住:抽象函数,也要遵从函数的基本定义格式,要明确结果,要明确未知内容,只不过函数体由子类完成

package com_package1;

public interface Inter {
    
    //public static final int NUM = 3;
    public abstract void show();
    public abstract int add(int x,int y);

}
package com_package1;

public   class InterImpl implements Inter {

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

    @Override
    public int add(int x, int y) {
        // TODO Auto-generated method stub
        return x+y;
        //return 0;
    }

}

接口避免了单继承的局限性

特别的:

package com_package1;

public class A {
    public void show() {
        
        System.out.println("aaaaaaaaaaaa");
    }
    

}
package com_package1;

public interface B {
    public abstract void show();

}
package com_package1;

public class C extends A implements B{
//西安阿紫不用在这里面对接口中的抽象类进行实例化了,因为他已经继承了A中的show(),就已经实例化了。

}

类与类之间是继承关系,接口与接口之间是继承关系,接口与类之间是实现关系。

package com_package1;

public interface  A {
    public abstract void showA();
        
//    

}
package com_package1;

public interface B  extends A{
    public abstract void showB();

}
package com_package1;

public interface C extends  B{
  public abstract void showC();

}
package com_package1;

public class Demo  implements C {

    @Override
    public void showB() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void showA() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void showC() {
        // TODO Auto-generated method stub
        
    }
    

}

 接口的特点

接口是对外暴漏的规则

接口是程序的功能扩展

接口的出现降低耦合性

接口可以用来多实现

类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口

接口与接口之间可以有继承关系

接口和抽象类的区别:

1、类是用来继承的,只能单继承,接口是用来实现的,可以多实现

2、类中可以定义非抽象内容,直接提供给子类使用。接口中只能定义抽象犯法,需要子类全部实现

3、类存在着继承关系,接口中是实现的关系

共同点:他们都是不断抽取而来的

当一个抽象类中全部都是抽象方法的时候,这是,可以将这个抽象类定义成接口,接口是一个特殊的抽象类,这可以是初期的一种简单的理解,意味着接口中的方法都是抽象方法

 

posted on 2015-05-07 22:49  盒子先生金金  阅读(117)  评论(0编辑  收藏  举报

导航