java多态性理解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java多态性理解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1548字,纯文字阅读大概需要3分钟。
内容图文
一 多态的基础是继承,重写,父类的引用指向子类对象,接口是多态最常见的实现方式。
概念性的东西,先说这么多,以上的都是重点, 继承 ,重写 ,父类的引用指向子类对象。
下面贴上代码 ,一步步来看到底什么是多态。
父类 动物类,然后会有Dog和Cat类继承此类
public class DongWu { public void eat(){ System.out.println("动物会吃东西"); } public void age(){ System.out.println("动物的年龄"); } }
Dog类
public class Dog extends DongWu { //重写父类的eat()方法 public void eat(){ System.out.println("狗吃骨头"); } //重写父类的age()方法 public void age(){ System.out.println("10岁的狗狗"); } }
Cat类
public class Cat extends DongWu { //重写父类的eat()方法 public void eat(){ System.out.println("猫吃鱼"); } //重写父类的age()方法 public void age(){ System.out.println("5岁的猫咪"); } }
如果平时,我们调用cat和dog累中的两个方法,需要这样写。
为每一个类指定一个对应的方法,这样的工作太繁琐了,我们可以改变一下写法
public class Test { public static void main(String[] args) { //new出两个类的实例对象 Cat c=new Cat(); Dog d=new Dog(); //new出本类对象test 没有使用static Test test=new Test(); test.test(c); test.test(d); } public void test(Dog d){ d.age(); d.eat(); } public void test(Cat c){ c.age(); c.eat(); } }
将 原来的 test方法中的参数类型改成了父类的类型,最后的结果是一样的。
编译类型是DongWu,运行时的实际类型变成了 具体的类型 比如例子中的 d,d,dw
这样就不用为每一个类型写一个方法,只需要写一个方法,灵活方便,程序运行时根据传入的具体参数类型去执行相对应的方法
对于
DongWu dw=new Cat();这种方式new出的实例对象,只能调用父类中定义过的方法,子类中新增加的方法是无法调用的。
public class Test { public static void main(String[] args) { //new出两个类的实例对象 Cat c=new Cat(); Dog d=new Dog(); //父类也就是DongWu的 引用 指向了子类的实例对象 (new Cat()) DongWu dw=new Cat(); //new出本类对象test 没有使用static Test test=new Test(); test.test(c); test.test(d); test.test(dw); } //将参数类型定义为父类的类型 public void test(DongWu dw){ dw.age(); dw.eat(); }
原文:http://www.cnblogs.com/sanduweiliangxtx/p/6000531.html
内容总结
以上是互联网集市为您收集整理的java多态性理解全部内容,希望文章能够帮你解决java多态性理解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。