zoukankan      html  css  js  c++  java
  • 一、多态

    引言:

    操作符的多态,比如+,可以作为算数运算,也可以连接字符串(类似于C++里的重载的思想)

    类的多态:父类引用指向子类对象

    一、操作符的多态:

      同一个操作符在不同情境下,具备不同的作用,如果+号两侧都是整型,那么+代表数字相加

      如果+号两侧,任意一个是字符串,那么+代表连接字符串

    package character;
    public class Hero{
        public String name;
        protected float hp;
        
        public static void main(String[] args)
        {
            int i=5;
            int j=6;
            int k=i+j;////如果+号两侧都是整型,那么+代表 数字相加
            System.out.println(k);//11
            
            int a=5;
            String b="6";
            String c=a+b;//如果+号两侧,任意一个是字符串,那么+代表字符串连接
            System.out.println(c);//56
        }
    }
    View Code

    二、类的多态现象

    首先写一个父类

    //父类
    package property;
    public class Item{
        String name;
        int price;
        
        public void buy(){
            System.out.println("购买");
        }
        public void effect(){
            System.out.println("物品使用后,可以有效果");
        }
    }
    View Code

    编写两个子类,分别继承父类。

    子类一:LifePoint

    //子类
    package property;
    public class LifePoint extend Item{
        public void effect(){
            System.out.println("血瓶使用后,可以回血");
        }
    }
    View Code

    子类二:MagicPoint

    //子类
    package property;
    public class MagicPoint extend Item{
        public void effect(){
            System.out.println("蓝瓶使用后,可以回蓝");
        }
    }
    View Code

    再写一个测试类进行测试

    //测试类
    package property;
    public class Test{
        public static void main(String[] args){
            Item i1=new LifePoint();
            Item i2=new MagicPoint();
            System.out.println("i1是Item类型,执行effect打印:");
            i1.effect();
            System.out.println("i2是Item类型,执行effect打印:");
            i2.effect();
        }
    }
    View Code

    输出了不同的结果,由此看来:多态都是同一个类型,调用同一个方法,却呈现了不同的状态

  • 相关阅读:
    iOS13使用bluetooth作为peripheral发送广播问题
    替代AttributeString的一个Label的类目
    Xcode拖动选中代码
    判断地图定位授权状态
    QLPreViewController的初步实用
    iOS的多版本配置(版本分离,多环境配置)
    -[NSBundle initWithURL:]: nil URL argument'
    xib的UIScrollView自适应高度
    ab工具-压力测试工具
    UIImageView的属性contentMode
  • 原文地址:https://www.cnblogs.com/drq1/p/8465874.html
Copyright © 2011-2022 走看看