继承可以解决代码复用,让编程更加靠近人的思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法。所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类:

class 子类 extends 父类

这样,子类就会自动拥有父类定义的属性和方法。

*父类的public修饰符的属性和方法,protected修饰符的属性和方法,默认修饰符的属性和方法被子类继承了,父类的private修饰符的属性和方法不能被子类继承。

注意事项:

  • 子类最多只能继承一个父类
  • java所有的类都是object类的子类

下面是由继承Employee 类来定义Manager 类的格式, 关键字extends 表示继承。

public class Manager extends Employee{  添加方法和域}

子类中继承父类的域和方法;

子类构造器

public Manger(String name, double salary, int year, int month, int day){  super(name, salary, year, month, day);  bonus = 0;}

因为子类终的构造器不能直接访问父类的私有域,所以必须利用父类的构造器对这部分私有域进行初始化,可以使用super实现对父类构造器的调用。使用super调用构造器的语句必须是子类构造器的第一条语句。

package testbotoo;import java.time.LocalDate;public class Employee
{private String name;private double salary;private LocalDate hireDay;public Employee(String name, double salary, int year, int month, int day){this.name = name;this.salary = salary;hireDay = LocalDate.of(year, month, day);        }public String getName(){return name;}public double getSalary(){return salary;}}

package testbotoo;public class Manager extends Employee
{private double bonus;/*** @param name the employee's name* @param salary the salary* @param year the hire year* @param month the dire onth * @param day the hire day */public Manager(String name, double salary, int year, int month, int day){super(name, salary, year, month, day);bonus = 0;}public double getSalary(){double baseSalary = super.getSalary();return baseSalary +bonus;}public void setBonus(double b){bonus = b;}}

package testbotoo;public class ManagerTest {public static void main(String[] args){Manager boss = new Manager("aaa",8000,1999,12,20);boss.setBonus(5000);Employee[] staff = new Employee[3];staff[0] = boss;staff[1] = new Employee("hary",5000,1989,3,15);staff[2] = new Employee("mayun",50000,1989,3,16);for (Employee e : staff)System.out.println("name="+e.getName()+",salary="+e.getSalary());}}

转载于:https://www.cnblogs.com/botoo/p/8744893.html

java===java基础学习(11)---继承相关推荐

  1. java入门基础学习(三)

    文章目录 (一)有返回值的方法 (二)方法重载 习题 (一)有返回值的方法 格式:public static 返回值数据类型 方法名(参数){方法体return 数据;} 注意:1.返回值数据类型非v ...

  2. 【Java】Java零基础学习笔记

    文章目录 前言 思维导图 前期准备 卸载JDK 安装JDK Hello,world 可能遇到情况 java程序运行机制 IDEA的安装 java基础部分 基础语法 运算符 包机制 javaDoc文档手 ...

  3. Java零基础学习全套视频笔记

    Java零基础学习全套视频笔记 一.Java基础 1.注释 注释并不会被执行,是给我们写代码的人看的,防止项目结构代码太多忘记代码相关功能. 书写注释是一个非常好的习惯,平时写代码也一定要注意规范. ...

  4. 【J2ME 2D 游戏开发系列】◣HIMI游戏开发启蒙教程◢JAVA零基础学习J2ME游戏开发全过程!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/j2me-2/774.html Himi从写 ...

  5. java多线程基础学习[狂神说java-多线程笔记]

    java多线程基础学习 一.线程简介 1.类比 2.程序进程线程 3.线程的核心概念 二.线程的实现(重点) 调用方法与调用多线程的区别 Thread 类 1.thread使用方法 2. 代码实现 3 ...

  6. Java零基础学习难吗

    java编程是入行互联网的小伙伴们大多数的选择,那么对于零基础的小伙伴来说Java零基础学习难吗?如果你是初学者,你可以很好的理解java编程语言.并不困难.如果你的学习能力比较高,那么你对Java的 ...

  7. Java零基础学习Java编程语言基础知…

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...

  8. java编程基础学习需要多久的时间

    Java是当前世界颇为流行的编程语言之一,很多想学习java的人都会听过一句话,先学好java基础,在考虑是自学还是培训学习,同时新的问题出现了,java基础包括什么,需要学习多久呢,对于小白来说,想 ...

  9. Java web基础学习笔记

    1.xml概述 1.1xml:xml一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系 1.2xml保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系 ...

  10. (Java零基础学习笔记)第二章 Java中的基本语法

    前言: 大家好! 我是BA unravel .如果你想和我一起学习JAVA,欢迎大家一起来学习这个世界上最好的语言! 学习目标: 一周掌握 Java 入门知识 学习内容: 1. 搭建 Java 开发环 ...

最新文章

  1. three.js(六) 地形法向量生成
  2. 用AI帮你找工作,领英是如何做的?
  3. LeetCode 122. Best Time to Buy and Sell Stock II--贪心--Java,C++,Python解法
  4. Windows WMIC命令使用详解(附实例)
  5. 小程序报错:Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail req..
  6. java hashset retain_Java HashSet retainAll()用法及代码示例
  7. WPS宏开发之VBA宏转JS宏
  8. 【数学建模】regress()函数进行回归分析| 美国人口预测
  9. 7-17 小红帽与大灰狼的故事
  10. ecli中@Data标签getset不起作用
  11. Microsoft同步工具SyncToy
  12. PMP 粗略量级估算与确定性估算
  13. 写一篇大数据背景下室内设计的论文
  14. 解决了.Net 2003“试图调试项目时发生错误”的问题
  15. 逆水寒2021最新服务器,2021年3月25日常规服务器合并投票结果公告
  16. 操作系统第五章——进程同步
  17. UI设计教程分享:关于海报的合成过程
  18. Excel表格转换为布尔表
  19. 颜色直方图, HSV直方图, histogram bins
  20. 解决TeamViewer远程连接受阻的方法

热门文章

  1. 第十四周项目三-数组类模板
  2. AndroidStudio2.2 Preview3中NDK开发之CMake和传统 JNI在目录结构和配置文件上的区别
  3. wireshark网络分析就这么简单_【读书笔记】2wireshark网络分析就这么简单——不同子网如何发送消息。...
  4. 卷积的定义及其物理意义_高等数学入门——高阶导数的定义及其物理意义
  5. python打开word并在前台显示_Python自动化办公之Word,全网最全看这一篇就够了
  6. 一种可以穿透还原卡和还原软件的代码
  7. 作业4(列表增加或者修改)
  8. 求二叉树第K层的节点个数+求二叉树叶子节点的个数
  9. mac 从终端打开应用程序
  10. [转]详细的mysql时间和日期函数