首页 > 编程语言 > 详细

Java多态(一)

时间:2015-03-28 11:29:17      阅读:124      评论:0      收藏:0      [点我收藏+]
父类:
public class Parent {

    public String name;
    private String pass;
    
    public void say1(AA aa){
        
        System.out.println("parent say1");
    }
    @SuppressWarnings("unused")
    private void eat(){
        System.out.println("parent eat");
    }
    public String getPass() {
        return pass;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }
}
子类:
public class Child extends Parent{
    
    public static void main(String[] args) {
        AA a = new AA();
        
        /**
         * 向上转型:程序运行调用某一方法时,先查看Parent类是否有调用的方法,
         * 若有则就去调用子类中的方法,若父类没有此方法,则编译错误。
         * 
         */
        Parent p = new Child();
        p.say1(a);
        
        /**
         * 向下转型,编译和运行皆不会出错,这里的向下转型是安全的。
         */
        Child child = (Child) p;
        child.say1(a);
        child.say2(a);
        
        /**
         * 向下转型,编译无错,运行时报错: java.lang.ClassCastException
         * 不安全的向下转型。
         */
        //Parent p2 = new Parent();
        //Child c2 = (Child) p2;
        //c2.say1(a);
    }
    
    public void say1(AA aa){
        
        System.out.println("Child say1");
    }
    
    public void say2(AA aa){
        
        System.out.println("Child say2");
    }
}

class AA {
    public void sys() {
        System.out.println("A is"); 
    }
}

class BB extends AA{
    public void sys() {
        System.out.println("B is"); 
    }
}

 

Java多态(一)

原文:http://www.cnblogs.com/quyanhui/p/4373868.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!