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虚拟机)决定目标方法

 

posted @   回忆也交给时间  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示