extjs server timer pygame base64 UIkit Momentjs HammerJS vue异步加载组件 vuejs 教程 后台管理界面模板 后台界面模板 jquery获取下一个元素 matlab复数求模 idea整理代码格式 不用u盘装双系统 mysql组合索引 centos7安装gcc 内存计算 python函数返回 python零基础 java正则匹配 java配置 randomjava java时间类 java声明变量 java游戏开发 php网络编程 网页游戏开发入门 flash实例 路由器有辐射吗 props 电视免费软件 在线手册 系统维护工具 dll下载 msn格式 战斗的召唤 python缩进规则 处理器虚拟化技术
当前位置: 首页 > 学习教程  > 编程语言

Java面向对象--多态详解

2021/1/13 19:41:54 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

多态:同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。(父类,等等)例子: //父类Person public class Person {public void run(…

  • 多态:同一方法可以根据发送对象的不同而采用多种不同的行为方式。
  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。(父类,等等)
  • 例子:
//父类Person
public class Person {
    public void run(){
        System.out.println("run");
    }
    public void A(){
        System.out.println("Person");
    }
}
//子类Student
public class Student extends Person {
    //重写
    @Override
    public void run() {
        System.out.println("son run");
    }

    public void eat(){
        System.out.println("son eat");
    }
}
//运行实现类
public class Start {
    public static void main(String[] args) {
        Student s1 = new Student();
        //Person父类,可以指向子类,但是不能调用子类独有的方法,如果想调用强制转换为Student类型
        Person s2 = new Student();
        Object s3 = new Student();

        //对象能执行哪些方法,主要看对象左边的类型,和右边关系不大
        s2.run();//子类重写了父类的方法,执行子类的方法
        s1.run();
        s1.A();

        //强制转换为Student类型
        ((Student) s2).eat();
        s1.eat();
    }
}
  1. 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多:指的就是Student,Person,Object s1的类型;
  2. Student类可以调用父类,祖父类和以上的类里的方法;
  3. Student没有重写父类方法时,Student s1可以调用父类方法,如s1.A(),Person s2调用父类方法执行父类方法,如s2.run()//此时结果:run;Student里重写了父类方法时Person s2、Student s1就调用重写后的方法,如:s2.run()//此时结果:son run、s1.run()//结果:son run;
  4. Person父类,可以指向子类,但是不能调用子类独有的方法,如果想调用强制转换为Student类型,如eat()方法。
  • 注意事项:
    • 多态是方法的多态,属性没有多态性。
    • 父类和子类要有联系!! 没有联系会报错:类型转换异常!!(ClassCastException!)
    • 存在条件:有继承关系,大部分方法需要重写,父类引用指向子类对象!Father f1 = new Son();
    • 不能重写的方法:
      • static:静态方法,属于类,不属于实例,
      • final:常量;
      • private:私有的方法。

本文链接: http://www.dtmao.cc/news_show_600162.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?