码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象——接口

时间:2015-05-07 23:30:13      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

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
        
    }
    

}

 

面向对象——接口

标签:

原文地址:http://www.cnblogs.com/mmlovejj/p/4486391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!