java.多态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package Demo.oop.APP.Demo05; public class application { public static void main(String[] args) { //一个对象的实际类型是确定的 //可以指向的引用的类型就不确定了:父类指向子类 //子类调用的只能是自己的或继承父类的 Student s1= new Student(); Person s2= new Student(); Object s3= new Student(); //对象能执行那些方法主要看左边和右边关系不大 //子类如果重写了父类的方法,就执行子类的,否则执行父类的 } } /** * 注意事项: * 1.多态是方法的多态,属性没有多态 * 2.父类和子类一定要有联系,否则就会出现类型转换异常 * 3.存在关系,继承关系,方法需要重写,父类的引用指向子类 *没有多态的情况 * 1.static方法,属于类,不属于实例 * 2.fina:常量 * 3.private方法 */ |
1 2 3 4 5 6 7 | package Demo.oop.APP.Demo05; public class Person { public void run(){ System.out.println( "run" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 | package Demo.oop.APP.Demo05; public class Student extends Person{ @Override public void run(){ System.out.println( "son" ); } public void eat(){ System.out.println( "eat" ); } } |
多态可以分成两种情况,一种编译时多态,另一种是运行时多态
编译时多态:
1.编译期间就确定了目标方法
2.通过overloading重载实现
3.方法名相同,参数不同,参数类型不同
运行时多态:
1.运行期间决定目标方法
2.同名同参
3.overriding和继承实现
4.JVM(java虚拟机)决定目标方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具