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);
           
            
        }

  • 相关阅读:
    获取各种屏幕宽度、高度
    java中获取本地文件的编码
    线程通信与进程通信的区别
    女性长期没有性生活有什么危害?
    面试中你必须要知道的语言陷阱
    当项目出现空闲时候,如何开展软件测试工作?
    同样是做鸭的 绝味与周黑鸭的区别咋那么大?!
    javaIO(二)
    (原)代码块
    this的使用
  • 原文地址:https://www.cnblogs.com/itchenguo/p/10974437.html
Copyright © 2011-2022 走看看