java中接口的向上转型。和多态性

9.java中接口的向上转型。和多态性(2011-06-07 22:35:59)转载▼

标签:杂谈 

1.在java中接口就是一个完全抽象的类,跟抽象类一样不能产生对象,但是可以作为对象的引用,可以由其实现类向上转型,它就跟超类一样,

向上转型了,可以很好的利用接口,可以调用接口中的所有在实现接口类中的方法.而不能把引用指向,接口(或者超类)中没有的方法,

2.接口定义中默认的都是publicabstract的方法

当实现接口的时候方法必须是public 并前要实现接口中出现的所有方法。

例如:

public interface A

{

 void fun();//默认的就是public abstract;

 void run();

}

//实现接口

public Animals implements A

{

  public void fun(){};

  public void run(){};//必须实现这两个方法,必须声明是public

  public void sleep(){};//也可以写自己的方法,但是于接口无关,

}

 

public class C

{

  static void funner(A an)//可以向上转型为A,只要是实现了A这个接口的类都可以转型

{

  an.fun();

  an.run();

 //注意不能调用sleep();因为sleep()在接口中没有,不能向下转型,不能调用接口中没有的方法.

}

}

 

 

其实继承跟接口的这种向上关系差不多.

只是实现接口的类必须实现接口中所有的方法,而继承中的方法不会,只是会出现覆盖.

不覆盖,子类中没有,就会调用基类的!

 

 

字段是没有多态性的,static 和final同样也不具有多态性,.

多态的产生是后期绑定,根据后期绑定判定类型,

多态就是开始附加某种类型,通过后期绑定判断,

如果是继承里面就看子类是否覆盖了父类的方法(非static方法和非private).

如果覆盖了就调用子类的,没覆盖就调用基类的

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值