10.多态的概述和实现

多态概述

  • 多态是继封装、继承之后,面向对象的第三大特性。
  • 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。
  • Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。

多态的定义与使用格式

  • 多态的定义格式:就是父类的引用变量指向子类对象
    父类类型 变量名 = new 子类类型();
    变量名.方法名();
  • A:普通类多态定义的格式
父类 变量名 = new 子类();
如:  class Fu {}
    class Zi extends Fu {}
    //类的多态使用
Fu f = new Zi();
  • B:抽象类多态定义的格式
    抽象类 变量名 = new 抽象类子类();
如:  abstract class Fu {
         public abstract void method();
      }
class Zi extends Fu {
      public void method(){
          System.out.println(“重写父类抽象方法”);
      }
}
//类的多态使用
Fu fu= new Zi();
  • C:接口多态定义的格式
    接口 变量名 = new 接口实现类();
如: interface Fu {
             public abstract void method();
}
class Zi implements Fu {
             public void method(){
              System.out.println(“重写接口抽象方法”);
}
}
//接口的多态使用
Fu fu = new Zi();
package com.itheima_01;
/*
 *  多态的前提
 *      字符类的继承关系
 *      方法的重写
 *      父类引用指向子类对象
 * 
 *  动态绑定:运行期间(右键):调用的方法,是根据其具体的类型
 * 
 *              编译期间(程程class文件)
 */
public class PoymorphicDemo {
    public static void main(String[] args) {
/*      Cat c = new Cat();
        c.eat();*/
        
        //父类引用Animal a
        //指向      =
        //子类对象new Cat()
        
        Animal a = new Cat();
        a.eat();//猫吃鱼
    }
}

class Animal {
    public void eat() {
        System.out.println("吃东西");
    }
}

class Cat extends Animal {
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • UIBlurEffect blur = [UIBlurEffect effectWithStyle:1];UIVi...
    Bubble_阅读 321评论 0 0
  • 2017年12月12日 嘉欣:今天是你姥姥的生日,爸妈和你弟弟一起回老家给你姥姥过生日,你慧慧姐姐订的蛋糕、曼曼姐...
    宋闯军阅读 378评论 0 1
  • 从前日子很慢 我都不会跟你说 我想要什么 觉得日后时间还长 现在不同 虽然日子很长 但还是想着 身边的每处都有你
    我泉的小迷妹阅读 170评论 0 0