• 继承和接口


    动手动脑【继承条件下的构造方法使用】

    源程序代码:package com;

    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 KaoShi{

    public static void main(String args[]) {

            Child c = new Child();

    此代码的运行结果为:GrandParent Created.

    Parent Created

    Child Created

    若将public parent类中的代码改为:public Parent() {

            super("Hello.Grandparent.");

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

        则运行的结果如下:GrandParent Created.String:Hello.Grandparent.

    Parent Created

    Child Created

    若将public parent类中的代码改为:public Parent() {

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

           super("Hello.Grandparent.");

    程序将会报错:说明通过super调用基类构造方法,必须是子类构造方法中的第一个语句。

    动手动脑【finally 类是不可以被继承的,其中的属性也不能被修改】

    程序代码:public final class Address

    {

    private final String detail;

          private final String postCode;//在构造方法里初始化两个实例属性

          public Address()

          {this.detail = "";

               this.postCode = ""}

    public Address(String detail , String postCode)

          {this.detail = detail;

               this.postCode = postCode;

          }

          //仅为两个实例属性提供getter方法

          public String getDetail()

          {return this.detail;

          }

    public String getPostCode()

          {

                return this.postCode;

          }

          //重写equals方法,判断两个对象是否相等。

          public boolean equals(Object obj)

          {

               if (obj instanceof Address)

               {

                     Address ad = (Address)obj;

                     if (this.getDetail().equals(ad.getDetail()) && this.getPostCode().equals(ad.getPostCode()))

                     {

                          return true}return false

    public int hashCode()

          {

               return detail.hashCode() + postCode.hashCode();

          }

     

      public static void main(String args[])

      {

            Address ad=new Address("abc","efg");

            String a=new String();

           System.out.println( ad.getDetail());

            System.out.println(ad.getPostCode());

    }

      }

    动手动脑【探索jdk的奥秘】

    源程序代码:package com;

    public  class KaoShi {

    public static void main(String[] args) {

               System.out.println(new A());

    }   

    }

    class A{}

    运行结果为:com.A@2a139a55

    动手动脑【神奇的+号】

    程序代码:

    public class Fruit

    {

           

        public String toString()

        {

            return "Fruit toString.";

        }

        public static void main(String args[])

        {

            Fruit f=new Fruit();

            System.out.println("f="+f);

        //  System.out.println("f="+f.toString());

        }

    }

    运行结果:f=Fruit toString.

    结果分析:在+运算中,当任何一个对象与String对象连接时,会隐式地调用其toString()方法,默认情况下,次方法返回“类名@+hashCode。为了返回有意义的信息可以进行重写。

  • 相关阅读:
    针对Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案
    MAC配置C++运行环境
    Keras 模型相关操作
    微信小程序 WXS
    vue 长列表优化
    webpack4 SplitChunks插件 代码拆分
    node path api
    mysql的模型依赖说明
    MySQL和MyCat replace
    SQL Server中WITH(NOLOCK)提示用在视图上会怎样(转载)
  • 原文地址:https://www.cnblogs.com/19950216z/p/4946928.html
Copyright © 2020-2023  润新知