zoukankan      html  css  js  c++  java
  • 面向对象的三大特征—多态

    一、多态:同一种引用类型,使用不同的实例而执行不同的操作。
    二、使用多态实现的思路:
    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);
           
            
        }

  • 相关阅读:
    数据流控制
    转:简单的Mysql主从复制设置
    转:CentOS---网络配置详解
    Linux-vim学习入门
    Linux图形界面与字符界面切换
    转:MySQL表名不区分大小写
    CentOS6.5_x86安装Mysql5.5.49
    Linux的环境变量设置和查看
    Linux防火墙的关闭和开启
    Linux command not found 问题解释
  • 原文地址:https://www.cnblogs.com/itchenguo/p/10974437.html
Copyright © 2011-2022 走看看