博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
继承多态
阅读量:5303 次
发布时间:2019-06-14

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

1.通过 super 调用基类构造方法,

 

子类要继承父类,必须在子类的构造方法中将父类的构造函数进行初始化;而且父类的构造方法要在子类之前。

  1. 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!

实验代码:package src;

class P

{

      public P()

      {

    

      }

 

public void c() {

// TODO 自动生成的方法存根

 System.out.println("这是父类");

}

      

}

class C extends P{

 

 

public void c() {

// TODO 自动生成的方法存根

 System.out.println("这是父类");

}

public C()

{c();

super .c();

// TODO 自动生成的方法存根

 System.out.println("这是子类");

 

}

}

public class Tests {

 

public static void main(String[] args) {

// TODO 自动生成的方法存根

C c= new C();

}

 

}

验证截图:

.

1.   左边的程序运行结果是什么?

2.   你如何解释会得到这样的输出?

3.   计算机是不会出错的,之所以得

到这样的运行结果也是有原因的,

那么从这些运行结果中,你能总

结出Java的哪些语法特性?

  1. 运行结果:100 200 200 200 201

解释原因:parent.myValue++;

parent.printValue();//201  错误,输出结果是200  这里父类对象已经是子类型的,上面加的是父类型的,而

//下面调用的是子类型的;

 

((Child)parent).myValue++;//??

  1. parent.printValue();//输出结果是201
  2. 当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。这个特性实际上就是面向对象“多态”特性的具体表现。

转载于:https://www.cnblogs.com/yyh-678/p/7811068.html

你可能感兴趣的文章
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
Spark的启动进程详解
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>