Java 继承extends、关键字super和this、多态、动态绑定
Manager 经理 extends Employee 雇员
"is-a"(是)关系是继承的一个明显特征。每个经理都是一名雇员。
从术语的角度讲,Manager是子类,Employee是超类。
子类不能够直接访问超类的私有域salary,要的话就必须使用公有接口,getSalary方法,但是这样还不行,因为子类本身也有自己的getSalary方法,这时我们希望调用的是超类的方法,就必须使用关键字super解决问题:super.getSalary();
super也可以在构造器中应用:
super(year,month,day);//调用超类Employee中含有year,month,day参数的构造器。
所以super关键字有两个用途:
1、调用超类的方法,
2、调用超类的构造器
在这里重温一下this关键字的两个用途:
1、指隐式参数(this.salary 隐式参数为对象),
2、调用该类其他构造器
public Employee(String name,String sex,String age){
this(year,month,day);
this.name = name; //this.name访问实例域
....
}
****************************************************************************
继承后我们来创建对象:
Manager boss = new Manager("Sam","man","20");
boss.setBonus(5000);
Employee[] earry = new Employee[3];
earry[0] = boss;
earry[1] = new Employee("Sam2","man","20","5000");
earry[2] = new Employee("Sam3","man","20","5000");
for(Employee e : earry){
System.out.println( e.getSalary() );
}
其实这段代码是为了证明,e.getSalary()能够确定执行哪个getSalary方法,尽管这里e声明为Employee类型,实际上e既可以应用Employee类型对象,又可以引用Manager类型对象,虚拟机知道e实际引用的对象类型。
一个对象变量(变量e)可以指示多种实际类型的现象被称为多态,在运行时能够自动选择调用哪个方法的现象称为动态绑定。
Java 继承extends、关键字super和this、多态、动态绑定的更多相关文章
- Java—继承、封装、抽象、多态
类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...
- java 继承、重载、重写与多态
首先是java 继承.重载和重写的概念 继承: 继承的作用在于代码的复用.由于继承意味着父类的所有方法亦可在子类中使用,所以发给父类的消息亦可发给衍生类.如果Person类中有一个eat方法,那么St ...
- JAVA面向对象-----extends关键字
继承使用extends关键字实现 1:发现学生是人,工人是人.显然属于is a 的关系,is a就是继承. 2:谁继承谁? 学生继承人,发现学生里的成员变量,姓名和年龄,人里边也都进行了定义.有重 复 ...
- Java面向对象之关键字super 入门实例
一.基础概念 (一)super关键字 super关键字的用法和this相似.this代表的是当前对象.super代表的是父类中内存空间. 子父类中是不会出现同名属性的情况. (二)继承中.成员变量问题 ...
- JAVA笔记5__构造块、静态块/单例设计模式/继承/final关键字/super关键字
public class Main { { //构造块(在构造对象时调用,先于构造方法执行) System.out.println("我是构造块!"); } static{ //静 ...
- java继承中关于super关键字和this关键字的使用
1.super关键字 由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字.super 可以用来访问父类的构造方法.普通方法和属性.super 关键字的功能: ...
- 继承extends、super、this、方法重写overiding、final、代码块_DAY08
1:Math类的随机数(掌握) 类名调用静态方法. 包:java.lang 类:Math 方法:public static double random(): Java.lang包下的类是不用导包就可 ...
- java 继承extends 的相关知识点
java只有单继承,不能多继承 子类只能继承父类的非私有成员(成员变量.成员方法) 子类不能继承父类的构造方法,但是可以通过super关键字访问父类的构造方法 继承 要体现子类父类的 继承关系, ”i ...
- JAVA 继承 extends
/* 继承 1.提高了代码的复用性,简化了代码 2.让类与类之间产生了继承关系,才有了后面的多态的特性的存在 注意:千万不要为了获取其它类的功能简化代码,而建立继承关系, 必须要类与类之间存在继承关系 ...
随机推荐
- python-day72--django实现的cookie/session
COOKIE 与 SESSION 一.概念cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生.cookie ...
- hdu 1257 LIS (略坑5
---恢复内容开始--- 最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 函数使用十一:FTP
网上很多FTP说明的文档,也很详细,写这玩意是备份一下: 注:有的系统需要配置FTP地址和端口,有的好像没有... SM30->SAPFTP_SERVERS_V,默认端口21. 在做之前可以做个 ...
- 数据结构与算法之PHP实现二叉树的遍历
一.二叉树的遍历 以某种特定顺序访问树中所有的节点称为树的遍历,遍历二叉树可分深度优先遍历和广度优先遍历. 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.可以细分 ...
- Segments
Segments Given n segments in the two dimensional space, write a program, which determines if there e ...
- 如何解决Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 8000401a. 问题
在系统中需要把数据导出到excel并且压缩,然后报了这个问题: 我在网站上找到了方法: 地址:https://social.msdn.microsoft.com/Forums/vstudio/en-U ...
- Python日志、序列化、正则模块
使用Python内置模块的目的:拿来别人已经写好的模块功能,直接import内置模块使用,简化程序,避免重复造轮子的过程,提示自己的开发效率: 一. loging日志模块: 1. loging模块可以 ...
- SpringBoot鸡汤(注解集合)
1.(ConfigBean.java :是一个带有属性的bean类) @Configuration @ConfigurationProperties(prefix = “com.md”) @Prope ...
- ElasticSearch安装部署(Windows)
测试版本:elasticsearch-5.1.1 1.解压elasticsearch-5.1.1.zip. 2.执行elasticsearch.bat启动服务,启动画面如下: 3.访问ElasticS ...
- Java Web(十) 分页功能
分页 分页的使用非常普遍,现在一步步的把分页功能实现出来,先看看已经写好的效果: 该页面的所有数据都存放在一个javaBean对象(PageBean)里,每次访问该页面时,Serlvet就会把page ...