导航:首页 > 编程语言 > java引用的实现的

java引用的实现的

发布时间:2024-07-21 17:29:33

java 将接口的引用指向实现类的对象

楼上的接口类的类名首字母要大写,其他的楼上说的都正确,就比如说:
Person p = new Student();
Person是接口,Student是Person接口的实现类,像上面这样就是:将接口的引用指向实现类的对象,明白不?

② 在java中实例化一个子类对象赋给父类对象引用或一个实现了接口的类的对象赋给接口的引用,有什么好处

这个问题不难!这是多态的一种应用:
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需团帆消求的不断变化。
赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。
举个例子:从一个基类中派生,响应一个虚命令,产生不同的结果。
比如从某个基类继承出多个对象,其基类有一个虚方法Tdoit,然后其子类也有这个方法,但行为不同,然后这些子对象中的任何一个可以赋轿凯给其基类的对象,这样其基类的对象就可以执行不同的操作了。实际上你是在通过其基类来访问其子对象的,你要做的就是一个赋值操作。
使用继承性的结果就是可以创建一个类的家族,在认识这个类的家族时,就是把导出类的对象当作基类的对象,这种认识又叫作upcasting。这样认识的重要性在于:我们可以只针对基类写出一段程序,但它可以适应于这个类的家族,因为编译器会自动就找出合适的对象来执行操作。这种现象又称为多态性。而实现多态性的手段又叫称动态绑定(dynamicbinding)。
简单的说,建立一个父类的对象,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,定义这个对象的类(也就是父类)里的同名函数将被调用,当在父类里的这个函数前加virtual关键字,那么子类的同名函塌知数将被调用。
例子在C++中:
classA{
public:
A(){}
virtualvoidfoo(){
coutfoo();
if(a!=NULL)
deletea;
return0;
}
这将显示:
ThisisB.
如果把virtual去掉,将显示:
ThisisA.
前面的多态实现使用抽象类,并定义了虚方法.
在java中:
多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。从程序设计的角度而言,多态可以这样来实现(以java语言为例):
publicinterfaceParent{
publicvoidsimpleCall();
}
publicclassChild_AimplementsParent{
publicvoidsimpleCall(){
//具体的实现细节;
}
}
publicclassChild_BimplementsParent{
publicvoidsimpleCall(){
//具体的实现细节;
}
}
//当然还可以有其他的实现
然后,我们就可以看到多态所展示的特性了:
Parentpa=newChild_A();
pa.simpleCall()则显然是调用Child_A的方法;
Parentpa=newChild_B();
pa.simpleCall()则是在调用Child_B的方法。所以,我们对于抽象的父类或者接口给出了我们的具体实现后,pa可以完全不用管实现的细节,只访问我们定义的方法,就可以了。事实上,这就是多态所起的作用,可以实现控制反转这在大量的J2EE轻量级框架中被用到,比如Spring的依赖注射机制。

③ 鍦↗ava涓瑕佸紩鐢ㄥ硅薄镄勫睘镐у拰鏂规硶,闇瑕佹庝箞瀹炵幇锛

灞炴э细绗涓绉嶅氨鏄镊宸卞畾涔変竴涓猵ublic镄勫叕鍏卞睘镐э纴铹跺悗璋幂敤灏辫屼简锛堜笉瀹夊叏锛夛纴绗浜岀嶅氨鏄鍒涘缓涓涓猵rivate镄勭佹湁镄勫睘镐э纴鐢熸垚鍏鍏辩殑set鍜実et鏂规硶锛埚皝瑁咃级锛岀劧钖庤皟鐢锛
鏂规硶锛氩悓绫讳腑鏂规硶涓洪润镐佹柟娉曞彲浠ョ洿鎺ヨ皟鐢锛屼笉涓洪润镐佹柟娉曢渶瑕乶ew鍜屼笉钖岀被涓瑕乶ew鍑哄硅薄锛岀劧钖庤皟鐢ㄥ叾鏂规硶锛
宸︿笂瑙掓湁鎴戝ご镀忥纴链夊緢澶氭湅鍙嫔湪涓璧风浉浜掍氦娴佸︿範銆

阅读全文

与java引用的实现的相关的资料

热点内容
安卓路由表怎么看 浏览:74
10个小孩分糖果python 浏览:823
安卓app小红点怎么取消 浏览:286
马哥linux面授 浏览:768
2345程序员 浏览:371
怎么开启网速显示安卓 浏览:204
索尼950app怎么样 浏览:391
计算机毕设论文源码 浏览:148
小米手机怎么下载易媒体App 浏览:191
还原系统设计可以怎样清理文件夹 浏览:670
北京时间校准服务器云服务器 浏览:844
pythonexcel数据计算 浏览:49
内医附院党建APP怎么下载 浏览:356
荣耀v20刷加密门禁卡 浏览:329
app缓冲视频怎么保存在手机 浏览:433
广度优先算法c语言 浏览:680
提高程序员竞争力 浏览:108
nfc可以开加密门卡吗 浏览:675
如何知道网页使用的服务器是什么 浏览:224
单片机接反电源会烧吗 浏览:287