类的继承是类的一个重要概念,通过类的继承子类可以继承父类的属性和方法,提高代码的复用性。

eg:

//**

*创建一个父类Teacher,父类有两个属性name,age,两个方法sleep(),teach()

*

*/

class Teacher{

public String name;

public int age;

public void sleep(){

System.out.println("老师会睡觉");

}

public void teach(){

System.out.println("老师会讲课");

}

}

//**

*JavaTeacher类继承Teacher类,并有自己独有的方法eye()

class JavaTeacher extends Teacher{

public void eye(){

System.out.println("java老师戴眼镜");

}

}

如上所示,JavaTeacher类继承了Teacher类,这样通过继承JavaTeacher类就拥有了Teacher类的两个属性name,age,两个方法sleep(),teach()。除了继承父类的属性和方法,子类还可以创建自己的方法和属性。

1.private在类中的使用

子类只能继承父类的非private属性和方法。需要指出的是,用private修饰方法不常见,毕竟若果是private,则对外不能使用,是没有意义的(需要指出的是单例模式,就是通过用private把构造器私有化实现的)。如果父类的属性被私有化,则子类可以通过get/set方法间接调用。

eg:

//用private修饰name属性

class Teacher{

private String name;

public void setName(String name){

this.name=name;

}

public String getName(){

return name;

}

}

//JavaTeacher类继承Teacher类

class JavaTeacher extends Teacher{

}

public class TeacherDemo{

public static void main(String[] args){

JavaTeacher jt=new JavaTeacher();

jt.setName("网名“);

jt.getName();

}

2.super用法

在创建一个子类对象时,首先调用父类构造器创建一个父类对象,然后调用子类构造器创造一个子类对象。

父类中如果没有带有参数的构造器时,会默认调用父类的默认无参数构造器,无论这个无参数构造器是否显式显示。

父类中如果有带有参数的构造器时,如果默认无参数构造器不显式显示,则会覆盖,子类创建时不会默认调用

当父类只存在带有参数的构造器时,子类的构造器必须有该父类构造器。

2.1.调用父类的默认构造器

class Parent{

}

class Son extends Parent{

son(){

super()//调用父类的默认构造器,super()也可以不写,默认调用

system.out.println("这是子类构造器");

}

}

2.2当有带有参数的构造器时,不会默认调用

class Parent{

Parent(String name){

}

}

class Son extends Parent{

son(){

super()//这事由于父类默认构造器被覆盖,不可调用,不管是显示还是隐式

super(name);//需要调用父类的带有参数的构造器,并且父类构造器必须写在第一行

system.out.println("这是子类构造器");

}

}

2.3当父类无参数构造器被写明时,子类构造器可以调用

class Parent{

Parent(){

}

Parent(String name){

}

}

class Son extends Parent{

son(){

super()//由于父类无参数构造器被显式写明,所以子类构造器可以调用,该调用可以是显式的和隐式的

system.out.println("这是子类构造器");

}

}

3.final关键字

final关键字修饰类,则类不可继承。

final关键字修饰属性,则属性不可修改。常用与修饰常量。如:

public static final doule pi=3.14;

final关键字修饰方法,则方法不可被重写。

java的Teacher类_java类的继承 - osc_tauwfamo的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java方法调用机制_Java方法调用机制 - osc_bkdv2it5的个人空间 - OSCHINA - 中文开源技术交流社区...

    最近在编程时,修改方法传入对象的对象引用,并没有将修改反映到调用方法中.奇怪为什么结果没有变化,原因是遗忘了Java对象引用和内存分配机制.本文介绍3个点: ① 该问题举例说明 ② 简要阐述Java内 ...

  2. java网络编程 听_java网络编程 - 亲亲媛的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.TCP/UDP,Socket,Http,Ftp简介 1.TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层.传输层和应用层: 网络层:IP协议(支持网间互联的数据报协议 ...

  3. java 写入环境变量_Java环境变量配置 - import_key的个人空间 - OSCHINA - 中文开源技术交流社区...

    Java 环境变量和路径 在 Solaris 系统上,必须先设置 JAVA_HOME 和 PATH 环境变量,Sun Management Center 3.6 安装向导.设置向导和 Java 控制台 ...

  4. java连连看项目汇报_java连连看小项目 - osc_x4wlt5vu的个人空间 - OSCHINA - 中文开源技术交流社区...

    /* *本人也是刚入门,希望各位多多指教 *该项目主要代码在于连线 *1.2个连线没有拐弯 *2.2个连线有一个拐弯 *3.2个连线有2个拐弯 *采用递归算法 */ package llk; impo ...

  5. java 嵌套类 继承_Java嵌套类 - 爱吃苹果的搬运工的个人空间 - OSCHINA - 中文开源技术交流社区...

    在Java中可以创建几种不同类型的嵌套类: 静态嵌套类: 静态内部类可以独立于外部类被实例化,无法访问外部类中的非静态属性和方法,只能外部类的实例来访问外部类的非静态变量 public class O ...

  6. java回调函数的生命_Java的回调函数 - choaklin 的个人空间 - OSCHINA - 中文开源技术交流社区...

    暂且不提回调函数的各种定义,如我本人,虽然知道JavaScript的回调的使用,但是百科了回调的定义,还是觉得云里来雾里去.所以大可先从已熟悉的入手,旁推侧引它的原理,再引出Java版的实现. 因为博 ...

  7. java成果_java学习成果1 - chenxiao60的个人空间 - OSCHINA - 中文开源技术交流社区

    //我的第一个java程序 /**the first thinking in java example program * display a string and today's date * @a ...

  8. java 递归死循环_Java递归 - 感觉太煽情的个人空间 - OSCHINA - 中文开源技术交流社区...

    树节点类: package cn.com.tree; public class Node { private Integer id; private Integer parentId; private ...

  9. java通讯方式_Java线程通讯方式 - osc_63rgy8af的个人空间 - OSCHINA - 中文开源技术交流社区...

    l  休眠唤醒方式: Object的wait.notify.notifyAll Condition的await.signal.signalAll l  CountDownLatch:用于某个线程A等待 ...

最新文章

  1. 【转】Unity游戏开发图片纹理压缩方案
  2. 由浅入深之Tensorflow(3)----数据读取之TFRecords
  3. WordPress插件制作教程概述
  4. 普通Java对象怎么计算大小(字节长度)?
  5. Linux学习总结(49)——应当竭力避免在系统中运行的 Linux 命令
  6. python 循环添加array_python常用的基本语句介绍
  7. 什么样的生意一本万利?
  8. java 数据库 下载_数据库下载
  9. 有趣的java小项目------猜拳游戏
  10. 2021-09-10二叉树的层序遍历
  11. python银行排队系统仿真_单片机实现银行排队叫号系统Proteus仿真
  12. https://blog.csdn.net/Darryl_Tang/article/details/80545688
  13. codeigniter mysql查询_codeigniter数据库操作函数汇总
  14. Windows7不停弹出计算机界面,拨号连接自动弹出,教您如何解决电脑总是自动弹出...
  15. 合肥工业大学宣城校区2018年-2019年第一学期(大三上学期)物联网工程专业资料汇总(含课件、个人实验报告、实验代码、课设报告等)
  16. 【抓包工具】配置:Fiddler 配置手机/平板抓包 https
  17. ubuntu双系统引导梅花_Ubuntu Windows双系统和USB无线网卡安装的正确方法
  18. 段永平抄底腾讯:高手不是最完美的,而是最淡定的
  19. 1970 matla 时间_教你用MATLAB做季节性调整
  20. 2020电赛A题(心电波形,lcd显示,心率计算,iir滤波处理)

热门文章

  1. 为什么现在的手机价格越来越高,最后一条真相了...
  2. 马斯克:我上大学时就想创立电动汽车公司
  3. 什么?iPhone 11起售价不到5400元?
  4. 降为千元机!小米6X 6+64G版到手价999元
  5. 中国铁路官宣:高铁Wi-Fi将融合5G技术
  6. WOW!今年iPhone XR将新增两种颜色:绿色和薰衣草色
  7. 爱奇艺漫威等系列电影因版权到期下架 会员无补偿
  8. 线性表:1.什么是线性表
  9. windows 搜索文件
  10. 一个可变参数类型检查的示例