zoukankan      html  css  js  c++  java
  • 06-继承与多态

    1.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来?

    解答:如果不调用父类的构造方法,那么在初始化子类的过程中,就无法使用父类中的变量和方法

    2.请自行编写代码测试以下特性(动手动脑):

    在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。

    package 测试;

    class Parent

    {

        public void Parent(int a,int b)

         {

            //super("Hello.Grandparent.");

            System.out.println("Parent Created");

           // super("Hello.Grandparent.");

          }

    }

    class Child extends Parent

    {

        public void Parent(int a,int b)

        {

           super.Parent(1,2);

           int c=a+b;

           System.out.println("Child Created");

           System.out.println("a+b:"+c);

        }

    }

    public class TestInherits

    {

        public static void main(String args[])

        {

        Child c = new Child();

        c.Parent(3, 4);

        }

    }

    3.“类型转换知识点考核-2

    下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么?

    m=d;

    d=m;

    d=(Dog)m;

    d=c;

    c=(Cat)m;

    先进行自我判断,得出结论后,运行TestCast.java实例代码,看看你的判断是否正确。

    m=d;       对

    d=m;       错

    d=(Dog)m;  对

    d=c;        错

    c=(Cat)m;   对

    4. 运行以下测试代码

     

    1.左边的程序运行结果是什么?

    100

    200

    200

    201

    201

     

    2.你如何解释会得到这样的输出?

    通过强制类型转换子类的字符将父类的字符覆盖了

    3.计算机是不会出错的,之所以得到这样的运行结果也是有原因的,那么从这些运行结果中,你能总结出Java的哪些语法特性?

    当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。

    如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。

    如果子类被当作父类使用,则通过子类访问的字段是父类的!

  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/cts1234/p/7813642.html
Copyright © 2011-2022 走看看