博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象的三大特征—多态
阅读量:4576 次
发布时间:2019-06-08

本文共 1473 字,大约阅读时间需要 4 分钟。

一、多态:同一种引用类型,使用不同的实例而执行不同的操作。

二、使用多态实现的思路:
1编写父类
2编写子类,子类重写父类的方法。
3运行时,使用父类的类型,子类的对象。
注:向上转型(子类转换成父类)
Pet pet=new Dog();
向下转型,(强制转换)(父类转换成子类)
Dog dog=(Dog)pet 
强制转换一般结合intanceof 结合使用,语法:对象 intanceof 类或接口。用来判断前面的是否属于后面的类型。一般用于子类所特有的方法时候,在测试类中需要调用这个子类特有的方法时候,需要强制转换。
三实现多态的两种形式
1使用父类作为方法形参实现多态。
2使用父类作为方法返回值实现多态。
四实现多态的好处
多态可以减少类中的代码量,可以提高代码的可扩展性和可维护性
一父类
public class Person {
   public void show(){
       System.out.println("******我是人类*******");
   }
}
二子类男孩
public class Boys extends Person{
   public void show(){
       System.out.println("我是男孩");
   }
   
   public void play(){
       System.out.println("我们很爱打游戏");
   }
}
子类女孩
public class Girls extends Person {
     public void show(){
         System.out.println("我是女孩");
     }
     
     public void play(){
         System.out.println("我们很爱逛街");
     }
}
管理类:public class Manager {
     public void showinformation(Person p){
         if(p instanceof Boys){
             Boys people=(Boys)p;
             people.play();
         }else if(p instanceof Girls){
             Girls people =(Girls)p;
             people.play();
         }
     }
注:父类作为方法的参数实现多态

public Person getInformation(int num){

         Person p1=null;
         if(num==1){
             p1=new Boys();
             p1.show();
         }else if(num==2){
             p1=new Girls();
             p1.show();
         }
        
         return p1;
     }
注:父类作为方法的返回值实现多态
  public Person getInformation(int num){
         Person p1=null;
         if(num==1){
             p1=new Boys();
             p1.show();
         }else if(num==2){
             p1=new Girls();
             p1.show();
         }
        
         return p1;
     }
测试类
 public static void main(String[]args){
        Manager you=new Manager();
        Person p=new Girls();
        you.showinformation( p);        
        Person  ty =you.getInformation(1);
       
        
    }

转载于:https://www.cnblogs.com/itchenguo/p/10974437.html

你可能感兴趣的文章
窗口 对话框 Pop Dialog 示例
查看>>
ubuntu(centos) server安装vmware tools
查看>>
数据结构之最大不重复串
查看>>
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
maven dependency:tree中反斜杠的含义
查看>>
队列的循环队列
查看>>
程序中的日期格式
查看>>
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>
模拟window系统的“回收站”
查看>>
报文格式【定长报文】
查看>>
RDLC报表钻取空白页问题
查看>>
多路电梯调度的思想
查看>>
jQuery-对Select的操作
查看>>
过滤器、监听器、拦截器的区别
查看>>
为什么要进行需求分析?通常对软件系统有哪些需求?
查看>>