将某个object reference视为一个“reference to base type“的动作,称为向上转型。
myInterface myObj = new myImplClass();java是天生的动态邦定,所以这样做可以在运行时来决定将要调用的是哪个类里的方面,一句话,还是多态
多态呀! 变量名可以是interface类型的,但是它的引用必须是一个对象实例
implements 只是java实现多重继承的一种方法的。
我是搂主,有几位让我茅塞顿开。现在总结一下问题,看看我理解的对不。 1 To kaymo(头发熟了) myObj指向类myImplClass创建的对象,但只有接口中的方法这里做了限制
myObj不可以使用myImplClass有而myInterface没有的方法? ------------------------------------------------------------------------------------- 2 To jFresH_MaN()(AbsolutelyFresh)(java欣人) 1.正是java的多态的体现,这样的定义方式是一种"is-a"的模式 myObj是接口的实例但引用的是类对象 2.多态呀!这样创建的对象既可以使用本类的方法,也可以实现接口的功能这里的多态是不是指:一个接口种定义的方法,在不同的实现类中有不同的实现,而叫多态?
to delva(呆娃) 多态就是指一个类具有多个“类”的特性和方法 我知道多态是学习C++的时候,C++可以多重继承,那就是继承多个类的特性 java没有多重继承,但是可以实现多个接口,其实一样实现多态打个比方,更形象一点 一个汽车接口里面有一个在陆地跑的方法,一个飞机接口里面有一个在天上飞的方法 然后一个Machine类implements这两个接口,他本身有一个生产东西的方法 那这个Machine就除了本身能生产东西又能在天上飞又能在路上跑了 这就是多态
To jFresH_MaN()(AbsolutelyFresh)(java欣人) 我没说清。你说的多重继承好像与override一个方法无关。多态势一个同名函数有不同的功效。 我是问,在接口中定义的方法,它会有好几个实现它的类。那么,在它的不同的实现类中自然会对同名的函数有不同的实现。这是不是 myInterface myObj = new myImplClass();这么做的要旨?
这里做了限制
集体你得看书 上塑造型的相关内容.
myObj是接口的实例但引用的是类对象
2.多态呀!这样创建的对象既可以使用本类的方法,也可以实现接口的功能
没什么为什么不为什么的,这是告诉你可以这么用而已,某些情况下这种用法自然有用。
本来接口不能实例化,但对于这种多态的方式,要将接口作为抽象类来理解。2 为何不用myImplClass自己建一个引用指向其自身创建的对象?
--myImplClass myObj = new myImplClass();
这可以啊,一点也没错。但是,在使用上就不太灵活了。
变量名可以是interface类型的,但是它的引用必须是一个对象实例
1 To kaymo(头发熟了) myObj指向类myImplClass创建的对象,但只有接口中的方法这里做了限制
myObj不可以使用myImplClass有而myInterface没有的方法?
-------------------------------------------------------------------------------------
2 To jFresH_MaN()(AbsolutelyFresh)(java欣人) 1.正是java的多态的体现,这样的定义方式是一种"is-a"的模式 myObj是接口的实例但引用的是类对象 2.多态呀!这样创建的对象既可以使用本类的方法,也可以实现接口的功能这里的多态是不是指:一个接口种定义的方法,在不同的实现类中有不同的实现,而叫多态?
多态就是指一个类具有多个“类”的特性和方法
我知道多态是学习C++的时候,C++可以多重继承,那就是继承多个类的特性
java没有多重继承,但是可以实现多个接口,其实一样实现多态打个比方,更形象一点
一个汽车接口里面有一个在陆地跑的方法,一个飞机接口里面有一个在天上飞的方法
然后一个Machine类implements这两个接口,他本身有一个生产东西的方法
那这个Machine就除了本身能生产东西又能在天上飞又能在路上跑了
这就是多态
我没说清。你说的多重继承好像与override一个方法无关。多态势一个同名函数有不同的功效。
我是问,在接口中定义的方法,它会有好几个实现它的类。那么,在它的不同的实现类中自然会对同名的函数有不同的实现。这是不是
myInterface myObj = new myImplClass();这么做的要旨?
用接口myInterface给用户提供统一的调用办法。而接口的实现,由myImplClass来实现接口的方法