• 课后作业4


    1.继承条件下的构造方法调用

    class Grandparent 
    {
    
    
        public Grandparent()
         {
    
                System.out.println("GrandParent Created.");
        
    }
    
    
        public Grandparent(String string) 
        {
    
                System.out.println("GrandParent Created.String:" + string);
        
     }
    
    }
    
    
    
    class Parent extends Grandparent
    {
    
    
        public Parent()
         {
    
                //super("Hello.Grandparent.");
    
                System.out.println("Parent Created");
        
           // super("Hello.Grandparent.");
    
          }
    
    }
    
    
    
    class Child extends Parent 
    {
    
    
        public Child()
         {
        
            System.out.println("Child Created");
    
          }
    
    }
    
    
    
    public class TestInherits 
    {
    
    
        public static void main(String args[])
         {
    
                Child c = new Child();
        
      }
    
    }

    运行结果:

    先调用父类的构造函数,后调用子类的构造函数,因为子类继承的父类所以,调用子类的构造函数时父类已经存在,所以时先调用父类的构造函数初始化父类,后调用子类的构造函数。

    class Grandparent 
    {
    
    
        public Grandparent()
         {
    
                System.out.println("GrandParent Created.");
        
    }
    
    
        public Grandparent(String string) 
        {
    
                System.out.println("GrandParent Created.String:" + string);
        
     }
    
    }
    
    
    
    class Parent extends Grandparent
    {
    
    
        public Parent()
         {
    
                super("Hello.Grandparent.");
    
                System.out.println("Parent Created");
        
        //   super("Hello.Grandparent.");
    
          }
    
    }
    
    
    
    class Child extends Parent 
    {
    
    
        public Child()
         {
        
            System.out.println("Child Created");
    
          }
    
    }
    
    
    
    public class TestInherits 
    {
    
    
        public static void main(String args[])
         {
    
                Child c = new Child();
        
      }
    
    }

    运行结果:

    用super调用父类构造函数,而且super必须是子类的第一行代码。

    思考:构造函数用于初始化,如果基类没有初始化是无法进行任何操作的,所以必须在第一行代码就进行初始化。

    2.“方法覆盖(override)”的要点

    class Fuigai {
    public void coutFuigai() {
        System.out.println("fulei");
    }
    }
    class Son extends Fuigai{
        public void coutFuigai() {
            super.coutFuigai();
            System.out.println("zilei");
        }
    }
    public  class Test {
        public static void main(String[] args) {
        Fuigai a=new Fuigai();
        Son b=new Son();
        b.coutFuigai();
        a.coutFuigai();
        }
    }

    运行结果:

    同名时Java会覆盖前一个方法的内容。

    3.动手动脑3

    class Parent{
        public int myValue=100;
        public void printValue() {
        System.out.println("Parent.printValue(),myValue="+myValue);
        }
    }
    class Child extends Parent{
        public int myValue=200;
        public void printValue() {
            System.out.println("Child.printValue(),myValue="+myValue);
        }
    }
    public class ParentChildTest {
    public static void main(String[] args) {
        Parent parent=new Parent();
        parent.printValue();
        Child child=new Child();
        child.printValue();
        
        parent=child;
        parent.printValue();
        
        parent.myValue++;
        parent.printValue();
        
        ((Child)parent).myValue++;
        parent.printValue();
    }
    }

    运行结果

     第一条输出父类的myValue;

    第二条输出子类的myValue;

    第三条子类的对象child赋给parent,最后调用对象parent相当调用child;

    第四条修改parent的myValue,但对象child已经赋给了parent,所以最后调用对象parent输出的还是child的myValue的值;

    第五条修改child的myValue,并最终同第四条一样,输出child的myValue的值。

  • 相关阅读:
    englis translate,word
    三层架构 业务应用划分
    01 sharepoint 2010开发概述
    项目管理框架,生命周期与组织,管理过程,项目管理知识领,项目经理应具备的技能和素质
    New Text Document.udl
    03 sharepoint 2010 UI 改进
    WCF
    Sharepoint2010学习内容列表介绍
    测试概论,基础,ST评估与质量,ST过程与管理,应用负载压力测试
    ios NSDictionary 操作
  • 原文地址:https://www.cnblogs.com/my---world/p/9890536.html
Copyright © 2020-2023  润新知