java中的多态-父类引用指向子类对象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_25136209/article/details/54809954

这个是java面对对象3大特征之一

package forDemo;

public class DuotaiDemo {



     static abstract class machine{
        public  abstract void use();

        public void other(){
            System.out.println("我是插电的");//事实证明抽象的类中能有非抽象的方法
        }


    }

     static class  Tv extends machine{

        @Override
        public void use() {
            System.out.println("看电视");

         }
        }
     static class Playgame extends machine{

        @Override
        public void use() {
        System.out.println("玩游戏");
        }

        public void other(){
            System.out.println("我是太阳能的");
        }

        public void cost(){
            System.out.println("我花了5K");
        }

      }


     public static void aaa1(machine m){
         if (m instanceof Tv) {//当有“多个”子类中有父类共同方法的时候,父类引用指向子类对象时,需要用instanceof来判断这个引用到底是指向那个子类的
            m=new Tv();
            m.use();
        }else if (m instanceof Playgame) {//并且是当子类有自己的独特的方法时才这样写。
            m=new Playgame();
            m.use();
            m.other();
            ((Playgame) m).cost();
        }

     }

    public static void main(String[] args) {
        /*
        Playgame  pg=new Playgame();
        aaa1(pg);
        Tv  tv=new Tv();
        aaa1(tv);*/

        aaa1(new Playgame());
        aaa1(new Tv());


    }

}

自己学安卓的路线当时只学了java中的方法,就开搞安卓了,其实这样也能行,到后面发现东西不够用了再来补java的基础会发现学的很快

猜你喜欢

转载自blog.csdn.net/sinat_25136209/article/details/54809954