首页 / JAVA / 一起学Java(十九)-----多态
一起学Java(十九)-----多态
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一起学Java(十九)-----多态,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2221字,纯文字阅读大概需要4分钟。
内容图文
![一起学Java(十九)-----多态](/upload/InfoBanner/zyjiaocheng/654/0a50f8523bdb4c0ba566744e2cef2359.jpg)
不积跬步,无以至千里;不积小流,无以成江海。
Java语言基础
Java多态
面向对象程序设计中代码重用的一个重要机制,父类/接口的多种不同实现方式即为多态。
多态的表现形式
- 编译时多态
方法的重载,同一个类中有多个同名方法,当方法的参数不同时,编译时就可以确定调用哪个方法,是同一个类中多态性的表现方式。
- 运行时多态
方法的重写,子类可以重写父类的方法,同样的方法在父类与子类中有着不同的表现形式。父类的引用可以指向子类对象,程序调用的方法在运行期才动态绑定,
多态存在的必要条件
1、要有继承
2、要有重写
3、父类引用指向子类对象
定义一个父类:
class Person { private String name; private int age; int i = 5; public Person(){} public Person(String name, int age){ this.name = name; this.age = age; } public String getname(){ return name; } public void setname(String name){ this.name = name; } public int getage(){ return age; } public void setage(int age){ this.age = age; } public String tostring(){ return "name = " + name + ", age = " + age; } public void eat(){ System.out.println("this is eating!"); } void sleep(){ System.out.println("this is sleeping!"); } }
定义一个子类:
class Student extends Person{ private int score; int i = 10; public Student(){} public Student(String name, int age, int score){ super(name, age); this.score = score; } public int getscore(){ return score; } public void setscore(int score){ this.score = score; } public String tostring(){ return "name = " + getname() + ", age = " + getage() + ", score = " + score; } public void sleep(){ System.out.println("Student's sleeping!"); } public void score(){ System.out.println("Student's score!"); } }
测试:
public class Test{ public static void main(String args[]){ Person p = new Student("tutu", 24, 100); System.out.println(p.i); System.out.println(p.getname()); p.eat(); p.sleep(); // p.score(); Student s = new Student(); System.out.println(s.i); s.score(); System.out.println(p); } }
程序输出:
5 tutu this is eating! Student's sleeping! 10 Student's score! studysuper.Student@15db9742
结论:
多态机制,只针对对象和方法,不针对属性(属性是没有多态性的);
对于方法的多态,子类重写了父类的方法后,在通过对象的向上转型为父类实例化对象时,调用的方法应该是子类重写之后的方法;
子类没有重写,在通过对象的向上转型为父类实例化对象时,调用的是父类的方法。
博客借鉴:https://blog.csdn.net/sunming0129/article/details/79765825
内容总结
以上是互联网集市为您收集整理的一起学Java(十九)-----多态全部内容,希望文章能够帮你解决一起学Java(十九)-----多态所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。