zoukankan      html  css  js  c++  java
  • 第十二周周总结 多态

    java面向对象的四大特性
    继承 封装 多态 (抽象)
    多态
    一、四种表现形式 1.方法重载 2.方法重写 3.抽象类 4.接口

    二、同一个对象 体现出来的多种不同形态(身份) 将一种行为表现出不同的效果
        要想实现多态的效果 需要现有继承方法
    
    三、体现
                 1.父类类型的引用 指向 子类的对象
                    Person p = new Teacher();
                 2.该引用只能调用父类中定义的属性或方法
                 3.如果子类中将父类的方法重写,那么调取方法后执行的结果是子类重写之后的那个结果
                               如果父类与子类有同名的属性             执行父类的属性
                               如果父类与子类有同名的方法(重载)      执行子类重写之后的方法
                 4.若想要调用子类中独有的成员
                               (强制类型转化) 造型 铸型 (向上/向下转型)
                 5.造型时(强制向下转型时) 可能会出现一个运行异常
                                ClassCastException 造型 铸型 异常
                                如果想要避免造型的异常  可以用instance关键字来进行判断
                                对象  instanceof  类
    

     四、                       InputMismatchException               输入不匹配
                                NumberFormateException               数字格式化异常
                                ArrayIndexOutOfBoundsException       数组索引越界
                                NegativeArraySizeException           数组长度负数
                                NullPointerException                 空指针异常
                                ArithmeticException                  算数异常
                                ClassCastException                   造型异常 将对象的类型还原时 与真实类型不匹配
                                StackOverflowError                   栈内存溢出错误
    

     五、                                Object
                                         hashCode equals toString getClass ...
                                         Animal
                                         name属性  eat sleep
                 Person                                        Pig 
                 name属性  重eat  重sleep  独talk               name属性   重sleep
       Teacher                     Student
       name  重eat 独有teach        name属性 重talk  独study
    

                               Object o =new Teacher();
                               o.hasCode  o.toString
                               Animal a = (Animal)o;
                               a.hashCode();   a.toString();   a.name   a.eat()   a.sleep()
                               Person p = (Person)o;
                               p.hasCode();    p.toString();   p.name   p.eat()   p.sleep()                              
                               Teacher t = (Theacher)o;
                               t.hasCode();    t.toString();   t.name   t.eat()   t.sleep()
    
                               Student s = (Student)o;  //不可以哦,会出现ClassCastException 造型异常
  • 相关阅读:
    php RSA公钥私钥加解密和验证用法
    php格式化RSA公钥私钥字符串
    你的周末时光是什么样的?
    php-redis 消息订阅笔记
    php redis 常用操作
    MySql索引笔记
    yii1框架,事务使用方法
    python 项目打包成exe可执行程序
    Linux修改默认端口
    C++字符串作为参数的传递
  • 原文地址:https://www.cnblogs.com/shsy/p/12026344.html
Copyright © 2011-2022 走看看