栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础之多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础之多态

  1. 多态的前提1:是继承
  2. 多态的前提2:要有方法的重写
  3. 父类引用指向子类对象,如:Animal a = new Cat();
  4. 多态中,编译看左边,运行看右边

关于编译看左,运行看右的解释

对于多态中的非静态方法,编译看左,运行看右。也就是在编译期间看左边的类中有无该方法,而实际在运行时执行的是右边类的方法。如果编译期间没有在左边的类找到该非静态域,则会报编译错误(调用左边的属性,调用方法时若子类没有重写则调用左边的,若右边的重写了调用的方法,则优先调用右边的。)(主体在左,重写法看右)

静态方法,编译和运行全看左边(及创建对象只与左边有关系,是左边的类型)

1.这是中间程序运行结果

2.这是最右边程序运行结果 

可以看出来静态方法都是调用左边的。 

下面看非静态 

1.属性

可以看到我Person Teacher和Student都定义了a

分别是300 200和100

此时我定义a和b用Person类定义,用Student和Teacher实例化

 输出a.a和a.b都是300

可见

调用属性只与左边有关

2.方法

三个类Student 和Teacher是Person的子类 

package oop.towho;

public abstract class Application {
    public static void main(String[] args) {
        Person person = new Person();
        Teacher teacher = new Teacher();
        Student student = new Student();
            //父类的引用指向子类的对象
       Person a = new Teacher();//Teacher类对象的地址值交给父类型变量a来保存

        Person b = new Student();//Student类对象的地址值交给父类型变量b来保存
        person.work();//主要是活着:父类调用自己的方法
        teacher.work();//主要工作是教学:子类调用自己的方法
        student.work();//主要工作是学习:子类调用自己的方法
        a.work();//主要工作是教学,多态对象使用的是父类的定义,子类的方法体
        b.work();//主要工作是学习,多态对象使用的是父类的定义,子类的方法体
       



    }

}
 多态的好处

!多态可以让我们不用关心某个对象到底具体是什么类型,就可以使用该对象的某些方法!

提高了程序的可扩展性和可维护性

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/970320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号