zoukankan      html  css  js  c++  java
  • java 动手动脑之父子继承

    1.构造函数的主要作用是什么?
    作用:在创建对象时初始化对象,为对象成员变量赋初值。
    调用时:子类——>父类——>祖类
    输出时:祖类——>父类——>子类
    在子类调用构造函数时必须调用父类的构造函数,调用是逐级往上调用,输出时就逐级从最高往下输出。
    2.自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字.

     1 public class FatherAndSon {
     2 
     3     public static void main(String args[]) {
     4         FatherAndSon s=new FatherAndSon();
     5         s.Test();
     6     }
     7     public void Test() {
     8         Son s=new Son();
     9         s.test();
    10         
    11     }
    12     class Father {//声明父类
    13         public void test() {//声明父类中的测试代码
    14             System.out.println("father");
    15             
    16         }
    17     }
    18     class Son extends Father{//声明子类,并继承父类
    19         public void  test() {//覆盖父类的测试类
    20             System.out.println("son");
    21             super.test();//使用super调用父类的测试类
    22         }
    23     }
    24 }

    当super被注释时的输出,父类的测试类没有输出,也就没有被调用。

    调用super时的输出,明显父类的测试类也被调用了,说明当父类中的方法被覆盖的时候,要想访问父类中方法就要使用super字符。

    3.

    class Mammal{}
    class Dog extends Mammal {}
    class Cat extends Mammal{}
    public class TestCast
    {
     public static void main(String args[])
     {
      Mammal m = null;
      Dog d=new Dog();
      Cat c=new Cat();
      m=d;//把子类赋予给父类不会出错
      //d=m; //将父类赋给子类会报错
      d=(Dog)m;//先强制转化为父类再赋值不会报错
      //d=c;
      c=(Cat)m;
     }
    }

    引起编译错误的是,因为类型不匹配,所以系统提示编译错误。

      

  • 相关阅读:
    js 使用${}解析变量代替++
    laravel 返回自定义错误
    Java集合之HashMap源码解析
    Java集合之ArrayList源码解析
    Java集合之LinkedList源码解析
    保证消息可靠性传输以及幂等性
    Java分布式系统---消息中间件
    Java中的日期与时间
    Java时区问题
    数据测试002:利用Jmeter推送测试数据(上)
  • 原文地址:https://www.cnblogs.com/msdog/p/9893491.html
Copyright © 2011-2022 走看看