码迷,mamicode.com
首页 > 其他好文 > 详细

10月21日动手动脑

时间:2019-10-27 20:28:02      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:tor   class   转换   运行   super关键字   string   out   gen   pre   

自行编写代码测试以下特性,在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。

package src.afterclass;

public class dongshoudongnao 
{
    public static void main(String args[])
    {
        EF ef=new EF("张三");
        ef.fly();
    }

}
class ABC
{
    private String name;

    public  ABC(String name)
    {
        this.name = name;
    }
    public void fly()
    {
        System.out.println("父类");
    }
}
class EF extends ABC
{
    public EF(String name) {
        super(name);
        // TODO Auto-generated constructor stub
    }

    public void fly()
    {
        //super.fly();
        System.out.println("子类");
    }
}

技术图片

 

 

package src.afterclass;

public class dongshoudongnao 
{
    public static void main(String args[])
    {
        EF ef=new EF("张三");
        ef.fly();
    }

}
class ABC
{
    private String name;

    public  ABC(String name)
    {
        this.name = name;
    }
    public void fly()
    {
        System.out.println("父类");
    }
}
class EF extends ABC
{
    public EF(String name) {
        super(name);
        // TODO Auto-generated constructor stub
    }

    public void fly()
    {
        super.fly();
        System.out.println("子类");
    }
}

技术图片

 

 

技术图片

 

技术图片

 

第一个是调用的父类的函数,

第二个调用子类的函数;

第三个是将子类赋给父类,相当于调用的是子类;

第五个是将父类强制转化成子类;

 

 

下面哪一个会导致程序运行时错误?

m=d; d=m; d=(Dog)m; d=c; c=(Cat)m;

先进行自我判断,得出结论后,运行相关代码,看看你的判断是否正确。

          自我判断:"d=m","d=c"引起编译错误

                “c=(Cat)m”引起运行时错误

           原因:“d=m”编译错误是因为Mammal类是Dog类的父类,子类中的成员比父类的多,父类无法将子类初始化;

                     “d=c”编译错误是因为两者代表不同的类,不能给对方赋值;

                     “c=(Cat)m”会引起运行时错误是因为Dog类的对象d已将Mammal类的对象m初始化,m被转换为Dog类后不能再转换为Cat类。

 

10月21日动手动脑

标签:tor   class   转换   运行   super关键字   string   out   gen   pre   

原文地址:https://www.cnblogs.com/1234yyf/p/11748678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!