zoukankan      html  css  js  c++  java
  • 多态(Java)

    一、多态

    1、什么是多态?

    解析:不同的对象对于同一个操作,做出的响应不同

             具有表现多种形态的能力的特征

    2、使用多态的优点

    解析:为了实现统一调用

    一个小例子:<父类类型作为参数>

    父类(Pet) 子类(Gog,Penguin) 主人类(Master)测试类(Test)

    Pet

    public abstract class Pet {
        public abstract void eat();
    
    }

    Dog

    复制代码
       public class Dog extends Pet{
    
        @Override
        public void eat() {
            System.out.println("够吃骨头");
            
        }
    复制代码

    Penguin  

    复制代码
       public class Penguin extends Pet {
    
        @Override
        public void eat() {
            System.out.println("企鹅吃fish");
            
        }
    复制代码

    Master 

    复制代码
    public class Master {
        //父类类型作为参数
    public void feed(Pet pet)
    {
        pet.eat();
        }
    
    }
    复制代码

    Test 

    复制代码
        public static void main(String[] args) {
            Master master=new Master();
            
            Pet pet=new Dog();
            
            master.feed(pet);
    
        }
    复制代码

    二、子类到父类的转换(向上转型)

    规则:

    ① 将一个父类的引用指向一个子类对象,成为向上转型,自动进行类型转换

    ② 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法

    ③ 通过父类引用变量无法调用子类特有的方法

    三、java中两种实现和使用多态的方式

    ① 使用父类作为方法形参

    ② 使用父类作为方法返回值

    四、父类到子类的转换(向下转型)

    将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型。此时必须进行强制类型转换

    五、instanceof运算符

    语法:

    对象 instanceof 类或接口

    该运算符用来判断一个对象是否属于一个类或者实现了一个接口,结果为true或false

    注:

    ① 使用instanceof运算符时,对象的类型必须和instanceof的第二个参数所指定的类或接口在继承树上有上下级关系,否则会出现编译错误

    ② instanceof通常和强制类型转换结合使用


  • 相关阅读:
    Java实现蓝桥杯突击战
    Java实现蓝桥杯突击战
    Java实现蓝桥杯勇者斗恶龙
    Java实现蓝桥杯勇者斗恶龙
    利用cmake来搭建开发环境
    cmake总结
    cmake手册详解----转
    Boost::filesystem 使用小笔记
    Boost学习之可移植路径操作--filesystem
    C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
  • 原文地址:https://www.cnblogs.com/hq-123/p/5532756.html
Copyright © 2011-2022 走看看