zoukankan      html  css  js  c++  java
  • java 多态

    1,新建Application类,作为程序的入口

    package oop.demo06;
    //多态
    public class Application {
        public static void main(String[] args) {
    //一个对象的实际类型是确定了的
            Person p0 = new Person();
            Student s0 = new Student();
    
    //        可以指向的引用类型不确定---
    //        父类的引用指向子类的类型
    //        父类 new 子类  -------------- 多态
    
            //student 子类能调用的方法都是自己的或者继承父类的
            Student s1 = new Student();
            //person 父类 可以指向子类,但不能调用子类独有的方法
            Person s2 = new Student();
            Object s3 = new Student();
    //        String s4 = new Student(); //报错 类型转换异常 ClassCastException
    
            s2.run();//(没重写之前 student) run============>Person ///(走了重写之后 )son==========Student
            //子类重写父类的方法,那么执行的是子类的方法;
            s1.run(); //son==========Student
    
            s1.eat();//eat=============Student
    //        强制转换 高----》低
            ((Student) s2).eat();
    
        }
        /*
        多态注意事项
        1,多态是方法的多态,属性没有多态
        2,父类和子类 有联系
        3,类型转换异常 ClassCastException
        4,存在的条件: 继承关系、 方法需要重写、 父类引用指向子类对象       Father f1 =new Son();
    
            不能重写的;
                1,static 方法,属性类,不属性实例
                2,final 常量
                3,private 方法
         */
    }
    
    

    2,新建Person类

    package oop.demo06;
    
    public class Person {
        public  void  run(){
            System.out.println("run============>Person");
        }
    
    }
    
    

    3,新建Student类

    package oop.demo06;
    //继承
    public class Student extends Person {
        @Override
        public void run() {
    //        super.run();
            System.out.println("son==========Student");
        }
    
        public  void  eat(){
            System.out.println("eat=============Student");
        }
    }
    
    

    5,多态注意点

    ##多态注意事项
        1,多态是方法的多态,属性没有多态
        2,父类和子类 有联系
        3,类型转换异常 ClassCastException
        4,存在的条件: 继承关系、 方法需要重写、 父类引用指向子类对象  Father f1 =new Son();
    
            不能重写的;
                1,static 方法,属性类,不属性实例
                2,final 常量
                3,private 方法
    

    6,运行结果

  • 相关阅读:
    iOS与H5交互时,去掉调用方法时产生的警告
    技术支持网址:Technical support
    iPhone X 适配
    iOS11 上拉刷新后没有动画出现,直接瞬间出来没有停顿
    要不要去柬埔寨工作,很纠结,但是工资我又无法拒绝
    iOS10 CAAnimationDelegate的适配
    Swift3GCD
    Alamofire4.0 在 CocoaPods无法更新的问题
    8行代码全屏滑动
    bootstrap table 前端分页的问题
  • 原文地址:https://www.cnblogs.com/d534/p/15094308.html
Copyright © 2011-2022 走看看