zoukankan      html  css  js  c++  java
  • 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中的方法
        }
    }
  • 相关阅读:
    整数转字符串
    SharePoint介绍性文章
    Disable Sharepoint 2007 show as System Account when system admin login
    通过IP地址获得主机名
    从文本文件读取信息
    数据库连接池问题[转]
    企业类库问题 public key 问题[经过自己测试]
    Google Analytics异步代码创建虚拟浏览量跟踪
    同一主机上WordPress博客更换域名简易八步骤(2)
    关于application/xwwwformurlencoded等字符编码的解释说明
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7325951.html
Copyright © 2011-2022 走看看