您的位置:首页 > 编程语言 > Java开发

java interface 用法

2014-03-18 04:43 489 查看
import java . io . * ; 
import java . util . * ; 
import java . util . regex . * ; 

interface myinterface
{ 

        public void output ( ) ; 
} 

public class tmp implements myinterface
{ 

        public void output ( ) 

        { 

                System . out. println ( "output" ) ; 

        } 

        public static void main( String args[ ] ) throws Exception 

        { 

                myinterface t = new tmp( ) ; 

                t. output ( ) ; 

        } 
}


 

java-interface(接口),多重继承,接口扩展-的用法

范例1:

interface ishape

{

 final double pi=3.14;

 abstract void area();

 

}

class rectangle implements ishape

{

 int w,h;

 public rectangle(int w1,int h1)

 {

  w=w1;

  h=h1;

  

 }

 public void area()

 {

  System.out.println("area="+w*h);

 }

}

class circle implements ishape

{

 double radius;

 public circle(double r)

 {

  radius=r;

 }

 public void area()

 {

  System.out.println("area="+pi*radius*radius);

  

 }

}

public class interfacec

{

 public static void main(String args[])

 {

  rectangle myrectangle=new rectangle(5,10);

  myrectangle.area();

  circle mycircle=new circle(2.0);

  mycircle.area();

 }

}

范例2:

interface ishape

{

 final double pi=3.14;

 abstract void area();

 

}

class rectangle implements ishape

{

 int w,h;

 public rectangle(int w1,int h1)

 {

  w=w1;

  h=h1;

  

 }

 public void area()

 {

  System.out.println("area="+w*h);

 }

}

class circle implements ishape

{

 double radius;

 public circle(double r)

 {

  radius=r;

 }

 public void area()

 {

  System.out.println("area="+pi*radius*radius);

  

 }

}

public class interfacec

{

 public static void main(String args[])

 {

  ishape shape1,shape2;

  shape1=new rectangle(5,10);

  shape1.area();

  shape2=new circle(2.0);

  shape2.area();

 }

}

范例3:多重继承:

 

interface ishape

{

 final double pi=3.14;

 abstract void area();

 

}

interface ishape1

{

 abstract void show();

 

}

class rectangle implements ishape,ishape1

{

 int w,h;

 public rectangle(int w1,int h1)

 {

  w=w1;

  h=h1;

  

 }

 public void area()

 {

  System.out.println("area="+w*h);

 }

 public void show()

 {

  System.out.println("this is rectangle class");

 }

}

class circle implements ishape,ishape1

{

 double radius;

 public circle(double r)

 {

  radius=r;

 }

 public void area()

 {

  System.out.println("area="+pi*radius*radius);

  

 }

 public void show()

 {

  System.out.println("this is circle class");

  

 }

}

public class interfacec

{

 public static void main(String args[])

 {

  rectangle myrectangle=new rectangle(5,10);

  myrectangle.show();

  myrectangle.area();

  circle mycircle=new circle(2.0);

  mycircle.show();

  

  mycircle.area();

     

  

  

 }

}

范例4:接口的扩展:

interface ishape1

{

 final double pi=3.14;

 abstract void setcolor(String strcolor);

 

}

interface ishape2 extends ishape1

{

 abstract void area();

 

}

class circle implements ishape2

{

  double radius;

  String color;

  public circle(double r)

  {

   radius=r;

  } 

  public void setcolor(String strcolor)

  {

   color=strcolor;

   System.out.println("color="+color);

   

  }

  public void area()

  {

   System.out.println("area="+pi*radius*radius);

  }

}

public class interfacec

{

 public static void main(String args[])

 {

  circle mycircle=new circle(2.0);

  mycircle.setcolor("red");

  mycircle.area();

  

 }

}

 
请比较范例1,和范例2,掌握接口的用法,在声明接口时必须注意以下两点:
1:接口的数据成员必须初始化,例如:范例1中:final double pi=3.14;//final可以省略 
2:接口里的method必须全部声明成为abstract.也是只做声明不处理.例如,范例1中:abstract void area(); 
接口中所有属性都必须是public static final,这是系统默认的规定,所以接口属性也可以没有任何修饰符,其效果完全相同。同样,接口中的所有方法都必须是默认的public static,无论是否有修饰符显式的规定它。

当一些物体具有相同行为/属性时,可以先用一个接口来统一描述,而个体的特殊性,可以在实现类中体现。

抽象化:   

        几个类如果大致的方法是一样的就可以把他们的共同的方法提出来,做成interface   ,让这几个类实现这个nterface,通过interface   接口下塑造型访问这几个类。

interface是个好东东,看看设计模式就知道了,都是用它
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java