推广 热搜: 关键词  效果  自动  直播  应用  信息  设置  提升  查询  智能 

javaday11多态(特点、优势和劣势)

   日期:2024-12-14     作者:8r2jv    caijiyuan  
核心提示:1.调用成员的特点变量调用:编译看左边,运行也看左边方法调用:编译看左边,运行看右边//动物类class Animal{String name=动物;

1.调用成员的特点

变量调用:编译看左边,运行也看左边

方法调用:编译看左边,运行看右边

//动物类

class Animal{

String name="动物"; public void show(){ System.out.println("动物---show方法"); } } //狗类 class Dog extends Animal{ String name="狗"; @Override public void show(){ System.out.println("狗---show方法"); } } //猫类 class Cat extends Animal{ String name="猫"; @Override public void show(){ System.out.println("猫---show方法"); } }

//测试类

public class Test {

public static void main(String[] args) { Animal a=new Dog(); System.out.println(a.name); a.show(); } }

测试类打印结果为"动物",a.show();方法调用打印"狗"。

总结:Father f = new Son();

f的成员变量看Father,f的成员方法看Son。

2.多态的优势

①业务逻辑方式改变时,便于修改。例如,一开始是创建学生的对象工作

Person p=new Student();

p.work();

之后想创建教师的对象工作,

Person p=new Teacher();

p.work();

因为调用方法看右边,所以p.work会使用Teacher类的方法。

②如果Person类有很多种子类,创建对象时可以Person p=New Son1(),Person p=New Son2(),Person p=New Son3()……不用所有子类都写一遍统一用Person就好。

3.多态的弊端

Person p=new Student()

p无法调用Student特有的方法。例如Person类中有eat,sleep方法。Student类中有eat,sleep,study方法。那么p.study()就无法调用。

解决办法:类型转换

Student s=(Student) p;

s.study();

4.总结

本文地址:https://sicmodule.kub2b.com/tnews/3197.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号