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

对于父类上转型和接口回调的理解

2017-05-02 16:18 288 查看
java多态

父类上转型

  1.父类类型的引用可以调用父类中定义的所有属性和方法,对于只存在与子类中的方法和属性它就望尘莫及了

  2.对于引用子类的父类类型,在处理该引用时,它适用于继承该父类的所有子类,子类对象的不同,对方法的实现也就不同,执行相同动作产生的行为也就不同;
Object、Wine、JGJ三者继承链关系是:JGJ—>Wine—>Object。所以我们可以这样说:当子类重写父类的方法被调用时,只有对象继承链中的最末端的方法才会被调用

  

  

java接口回调和向上转型
接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调

父类A

子类B extends A{}

那么我们实例化一个B的子类  B b=new B(),然后在把b这个引用变量地址  传给A类型 即 A a=b,简言之 A a=new B();这是我们只能引用A中的变量和方法,但是子类B是可以重写A中的方法的,所以A中如果有有方法A1,A2,而B子类只重写了A类的A2方法,所以调用a.A1()时,走的A中的具体实现过程,如果调用a.A2()时,走的是子类B中的具体实现过程,这样就实现了java的多态,若果你能理解这个页面的内容就差不多了
http://www.cnblogs.com/chenssy/p/3372798.html
http://blog.csdn.net/thinkGhoster/archive/2008/04/19/2307001.aspx

接口回调

interface A

class B implements A

我们声明一个接口A的变量A a;然后实例化B对象,并将B对象的引用变量传给a,这是就能通过a调用B中的具体实现方法

A a=new B()

下面这个例子能够很好的帮助理解接口回调
http://www.cnblogs.com/heshuchao/p/5376298.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  转型 java class 多态