• 继承与接口


    1.通过super()调用父类的有参构造方法,super语句必须是子类构造函数的第一句。

    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");

      }

    }

    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");

      }

    }

    class Child extends Parent 

    { public Child()

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

    }

    public class TestInherits 

    {public static void main(String args[])

     {Child c = new Child();}

    }

    public class ExplorationJDKSource {

    /**

     * @param args

     */

    public static void main(String[] args) {

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

    }

    }

    class A{}

    java中,有时会遇到子类中的成员变量或方法与父类中的成员变量或方法同名。因为子类的优先级高,所以子类中的同名的成员或方法就隐藏了父类中的成员变量或方法,但是如果我们想要使用父类中的成员变量或方法,就要用到super.

    package com;

    class Country

    {

    String name;

    void value()

    {

    name="Chine";

    }

    }

    class City extends Country

    {

    String name;

    void value()

    {

    name="hebei";

    super.value();

    System.out.println(name);

    System.out.println(super.name);

    }

    }

    public class T {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    City c=new City();

    c.value();

    }

    为了在子类中引用父类中的成员变量和方法value(),在代码中使用了super,super.name,super.value(),若不调用super.value()时,super.name返回的是父类成员的默认值null,调用方法时,super.value()方法先把成员变量name赋值为china,再用super.name调用父类成员变量的值。

    继承与接口

    package com;

    interface Flyanimal

    {void fly();}

    class Insect

    {

    int legnum=6;

    }

    class Bird

    {

    int legnum=2;

    void egg(){};

    }

    class Ant extends Insect implements Flyanimal

    {

    public void fly()

    {System.out.println("Ant can fly");}

    }

    class Pigeon extends Bird implements Flyanimal

    {

    public void fly()

    {System.out.println("Pigegon can fly");}

    public void egg()

    {System.out.println("Pigegon can lay eggs");}

    }

    public class T1 {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Ant a=new Ant();

    a.fly();

    System.out.println("Ant's legnum is"+a.legnum);

    Pigeon p=new Pigeon();

    p.fly();

    p.egg();

    }

    }

  • 相关阅读:
    SharePoint 2013 文档库中PPT转换PDF
    Linux线程-互斥锁pthread_mutex_t
    利用Python,四步掌握机器学习
    linux 文件夹权限及umask
    Android.mk入门(一)
    《Linux性能及调优指南》----1.1 Linux进程管理
    从进程到线程
    从程序到进程
    Android源码解析系列
    嵌入式工程师必读100本专业书籍
  • 原文地址:https://www.cnblogs.com/11-05/p/4947558.html
Copyright © 2020-2023  润新知