接口传值的收藏!

原文出处: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
public interface ICallback { 
   public void   func(); 
   
public class Caller { 
   ICallback callback; 
   public void doCallback() { 
     callback.func(); 
  
   
   public void setCallback(ICallback callback) { 
     this .callback = callback; 
  
   
   
public class MainClass { 
   public MainClass() { 
  
   
   public static void main(String[] args) { 
     Caller caller = new Caller(); 
     caller.setCallback( new ICallback () { 
       public void 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
interface People{ 
    void peopleList(); 
class Student implements People{ 
    public void peopleList(){ 
        System.out.println( "I’m a student." ); 
  
class Teacher implements People{ 
    public void peopleList(){ 
        System.out.println( "I’m a teacher." ); 
   
public class Example{ 
    public static void main(String args[]){ 
        People a;             //声明接口变量 
        a= new Student();      //实例化,接口变量中存放对象的引用 
        a.peopleList();        //接口回调 
        a= new Teacher();     //实例化,接口变量中存放对象的引用 
        a.peopleList();       //接口回调 
  
运行结果: 
I’m a student. 
I’m a teacher.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值