博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
继承与接口
阅读量:7076 次
发布时间:2019-06-28

本文共 2506 字,大约阅读时间需要 8 分钟。

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

}

 

}

 

转载于:https://www.cnblogs.com/11-05/p/4947558.html

你可能感兴趣的文章
thinkphp中的AJAX返回ajaxReturn()
查看>>
BZOJ4347 : [POI2016]Nim z utrudnieniem
查看>>
jquery validate自定义checkbox验证规则和样式
查看>>
WPF自定义控件与样式(14)-轻量MVVM模式实践
查看>>
EF Code First学习系列
查看>>
Memcache服务器端参数说明
查看>>
SQLServer 复制和数据库镜像 具体配置部署
查看>>
ASP.NET MVC Model绑定的简单应用
查看>>
长期演进技术(LTE,Long Term Evolution)
查看>>
数学之路-python计算实战(5)-初识numpy以及pypy下执行numpy
查看>>
SQL--类型转换
查看>>
VGG_19 train_vali.prototxt file
查看>>
获取文件或是文件夹的大小和占用空间
查看>>
libssh2进行远程运行LINUX命令
查看>>
Android Gson深入分析
查看>>
Android中自动跳转到系统设置界面
查看>>
树后台数据存储(採用webmethod)
查看>>
Android利用Fiddler进行网络数据抓包【怎么跟踪微信请求】
查看>>
memcached系列之二
查看>>
树的左旋与右旋
查看>>