• java中的多态案例


    多态性实际上有两种:

      1.方法的多态性:

        1.1方法重载:相同的方法名,会根据传入的参数的类型和个数不同执行不同的方法

        1.2方法覆写:同一个方法名称,会根据子类的不同实现不同的功能

      2.对象的多态性:指的是发生在类的继承中,子类和父类之间相互转换

        1.1向上转型(自动完成):父类 父类对象 = 子类实例

        2.2向下转型:子类 子类对象 =(父类)父类实例;

    由于父类可以有多个子类,而一个子类所拥有的父类个数不会太多,向上转型不会出现编译错误,而向上转型有可能出现编译时候的错误

    class A{
    	public void print(){
    		System.out.println("A中的方法");
    	}
    }
    class B extends A{
    	public void print(){
    		System.out.println("B中的方法");
    	}
    }
    public class Test{
    	public static void main(String args[]){
    		A a =new A();
    		B b = (B) a;
    		b.print();
    	}
    }
    /*
    Exception in thread "main" java.lang.ClassCastException: A cannot be cast to B
            at Test.main(Test.java:14)
    */
    

    以上的代码出现了类转换的异常,指的是两个两个没有关系的类对象发生强制的向下转型所带来的异常,

    instanceof关键字的使用;该关键字主要是判断某个对象是否是一个类的实例:

    对象 instanceof 类//返回的是boolean
    
    class A{
        public void print(){
            System.out.println("A中的方法");
        }
    }
    class B extends A{
        public void print(){
            System.out.println("B中的方法");
        }
    }
    public class Test{
        public static void main(String args[]){
            A  a = new B();
            if(a instanceof B){
                B b = (B)b;
            }
            b.print();
        }
    }

    注意点:向下转型发生之前,一定要先发生对象的向上转型

      

    范例:向上转型实例

    class A{
        public void print(){
            System.out.println("A中的方法");
        }
    }
    class B extends A{
        public void print(){
            System.out.println("B中的方法");
        }
    }
    public class Test{
        public static void main(String args[]){
            A a = new B();//向上转型
            a.print();//B中的方法
        }
    }
  • 相关阅读:
    Caused by: org.xml.sax.SAXParseException: The content of elements must consist of well-formed charac
    java反射方法
    错误解决:There is no getter for property named 'id' in class 'java.lang.String'
    java的AOP
    Java预置的注解
    mysql 数据库自动备份
    微信小程序
    关于 IOC和spring基本配置详解
    关于Spring配置的一些东西
    关于Spring的一点东西
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7325951.html
Copyright © 2020-2023  润新知