zoukankan      html  css  js  c++  java
  • JAVA OOP学习笔记——多态(polymorphism)

      多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。比如说人都会学习,程序员和厨师都是人,但他们有各自的学习方法。

      构成多态需要:

    1. 多态是针对方法而言的,属性没有多态一说;
    2. 多态的出现需要有继承、子类对父类方法的重写、基类引用指向子类对象
    3. 基类引用指向子类对象后,用该基类引用调用子类重写的方法,此时多态就出现了。  

      代码实现如下:

     1 package com.sina.test;
     2 
     3 public class Test{
     4     public static void main(String[] args){
     5         Person person = new Person();
     6         Coder coder = new Coder();
     7         Cooker cooker = new Cooker();
     8 
     9         invoke(person);   //打印""Person学习啦"",无基类引中指向子类对象,不构成多态
    10         invoke(coder);    //打印"Coder学习编程啦",基类引中指向子类对象,构成多态
    11         invoke(cooker);   //打印"Cooker学习炒菜啦",基类引中指向子类对象,构成多态
    12     }
    13 
    14     public static void invoke(Person p){
    15         p.study();
    16     }
    17 }
    18 
    19 class Person{
    20     //Person具备名字,年龄等等属性
    21     public String name;
    22     public int age;
    23 
    24     //Person有学习等行为
    25     public void study(){
    26         System.out.println("Person学习啦");
    27     }
    28 }
    29 
    30 //Coder和Cooker是人,继承自person但各自有各自的学习方法,正对应多态
    31 class Coder extends Person{    //继承
    32     @Override                  //方法重写
    33     public void study() {
    34         System.out.println("Coder学习编程啦");
    35     }
    36 }
    37 
    38 class Cooker extends Person{
    39     @Override
    40     public void study() {
    41         System.out.println("Cooker学习炒菜啦");
    42     }
    43 }
    View Code

        

  • 相关阅读:
    centos pptp client 配置
    hadoop hdfs 权限修改
    cdh Host Monitor 启动失败
    cdh yarn 启动失败
    hive 存储
    docker修改默认存储位置
    centos新增磁盘
    zookeeper服务部署数量
    实时人群计算——设想
    docker容器多服务——Supervisor
  • 原文地址:https://www.cnblogs.com/Hr666/p/10319034.html
Copyright © 2011-2022 走看看