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

本文介绍了Java中接口的概念及其实现方式,并详细探讨了接口的向上转型与多态性的运用。文章通过示例说明了如何实现接口以及实现类如何重写接口方法,同时解释了字段、static和final不具备多态性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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).

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值