接口传值的收藏!

来源:互联网 发布:联想手机淘宝旗舰店 编辑:程序博客网 时间:2024/05/16 12:26

原文出处:http://www.bdqn.cn/news/201312/12350.shtml

原文出处:http://my.oschina.net/onlytwo/blog/39193

interface Runner //定义接口
{
         int i=3;
       public void start();
        void run();
        void stop();
}
interface Eater extends Runner //接口间可以继承
{
        public final static int j=4;
        void openMouth();
        void upAndDown();
        void goIn();
}
class TT implements Eater //引用接口
{
        public void start()
        {
                System.out.println("---------start()-------");
        }
        public void run()
        {
                System.out.println("---------run()-------");
        }
        public void stop()
        {
                System.out.println("---------stop()-------");
        }
        public void openMouth()
        {
                System.out.println("---------openMouth()-------");
        }
        public void upAndDown()
        {
                System.out.println("---------upAndDown()-------");
        }
        public void goIn()
        {
                System.out.println("---------goIn()-------");
        }
}
public class TestInterface
{
       public static void main(String[] args)
       {
                Runner tt=new TT();//接口的引用指向实现的对象
                System.out.println(tt.i);
                System.out.println(Runner.i);
                tt.start();
                Eater ee=new TT();
                System.out.println(ee.j);
                System.out.println(Eater.j);
                ee.start();
       }
}

1、接口方法用于回调 (这里定义接口是为了使用其接口方法):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
publicinterface ICallback { 
  publicvoid   func(); 
   
publicclass Caller { 
  ICallback callback; 
  publicvoid doCallback() { 
    callback.func(); 
  
   
  publicvoid setCallback(ICallback callback) { 
    this.callback = callback; 
  
   
   
publicclass MainClass { 
  publicMainClass() { 
  
   
  publicstatic void main(String[] args) { 
    Caller caller = newCaller(); 
    caller.setCallback(newICallback () { 
      publicvoid func() { 
        System.out.println("dosth"); 
      
    }); 
    caller.doCallback(); 
  
}

2、向上转型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
interfacePeople{ 
   voidpeopleList(); 
classStudent implementsPeople{ 
   publicvoid peopleList(){ 
       System.out.println("I’m a student."); 
  
classTeacher implementsPeople{ 
   publicvoid peopleList(){ 
       System.out.println("I’m a teacher."); 
   
publicclass Example{ 
   publicstatic void main(String args[]){ 
       People a;             //声明接口变量 
       a=newStudent();      //实例化,接口变量中存放对象的引用 
       a.peopleList();       //接口回调 
       a=newTeacher();     //实例化,接口变量中存放对象的引用 
       a.peopleList();      //接口回调 
  
运行结果: 
I’m a student. 
I’m a teacher.

0 0
原创粉丝点击