当前位置: 首页 > news >正文

java的继承机制有什么好处_JAVA基础-继承机制

需要掌握的知识点:

包的使用

继承时,子类如何覆盖父类方法(重写和重载)

继承时,构造方法的执行过程

JVM中子类如何实例化(先实例化父,再实例化子)

super和this关键字

final关键字

包的导入

import java.util.Scanner;

public class PackageTest {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

sc.nextInt();

}

}

Object类是所有类的鼻祖

当没有任何显示的继承类时,默认继承java.lang包下的Object类

//object源码中一些比较常用的方法

public boolean equals(Object obj) { //引用比较

return (this == obj);

}

//返回类名加hashcode

public String toString() {

return getClass().getName() + "@" + Integer.toHexString(hashCode());

}

public final native Class> getClass(); //返回类名

访问修饰符权限

访问修饰符

同类

同包

子类

其他

public

protected

默认

private

其中protected含义是保护继承的子类,这样在不同的包中就可以让子类访问了。

使用super关键字,super代表父类对象

访问父类构造方法

super();

super(name);

访问父类属性

super.age;

super.name;

访问父类方法

super.print();

总结一下super和this 的区别

----

----

----

----

this访问本类构造方法必须第一行

本类属性

本类方法

this可以引用当前对象

super访问父类构造方法必须第一行

父类属性

父类方法

super只能出现在子类中

方法重写

子类方法必须和父类具有相同的方法名称、参数列表和返回值类型(Eclipse中快捷键ALT+/可以快速重构父类函数)

子类方法的访问权限只能大于等于父类

子类方法抛出的异常不能大于父类被重写的异常

对象的创建过程

JVM会先加载父类,再加载子类

在栈内存中为定义的变量分配内存空间,同时在堆内存中为真正的对象分配内存空间

调用构造器来为创建出的对象进行初始化

子类中所有的构造方法,默认都会先调用父类中无参的构造方法 (如果父类中没有无参的构造方法,那么在子类中要利用super手动添加一个父类的有参构造方法)

Object类的构造器是最先被执行的

final 关键字

final修饰类表示该类不能被继承

比如String类就是这种情况

final修饰变量

表示该变量只能被赋值一次

成员变量、局部变量都可以使用final修饰(其中成员变量必须在声明时赋值或者通过构造方法赋值,变成一个常量。局部变量可以不在声明的时候赋值,但是也只能赋值一次)

必须手工为变量赋值一次(包括成员变量,如果赋默认值,没有任何意义)

final修饰方法表示该方法不能被子类重写

相关文章:

  • java类的三种特性_第10章 Java类的三大特性之一:多态
  • 微信公众平台接口测试账号申请
  • java系统类的使用体验_javamelody使用体验
  • 摆花(codevs 1315)
  • java课设要分小组吗_Java团队课程设计-学生成绩管理
  • 惊群 java_(转)测试Lighttpd accept的惊群现象
  • Python——私有化 和 属性property
  • python again_收藏!最全从Python小白到大牛,要走的路这里都有(初级篇)
  • .Net Core缓存组件(MemoryCache)源码解析
  • php 函数变量 前加,php在函数和变量前面加上@和$符号的区别详解
  • 凸函数与简森不等式(Jensen's inequality)
  • php date参数n,总结PHP date()参数列表
  • 小程序自定义函数—数字千位转换
  • tp3.2.3php环境要求,TP3.2.3开发手册
  • 控件模板
  • CentOS6 编译安装 redis-3.2.3
  • HomeBrew常规使用教程
  • js 实现textarea输入字数提示
  • js继承的实现方法
  • Making An Indicator With Pure CSS
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Python_OOP
  • Python打包系统简单入门
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • React-生命周期杂记
  • Vue 动态创建 component
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 计算机在识别图像时“看到”了什么?
  • 面试总结JavaScript篇
  • 批量截取pdf文件
  • 前端面试总结(at, md)
  • 前嗅ForeSpider采集配置界面介绍
  • 区块链将重新定义世界
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一天一个设计模式之JS实现——适配器模式
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 第二十章:异步和文件I/O.(二十三)
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #pragma once与条件编译
  • #QT(TCP网络编程-服务端)
  • (14)Hive调优——合并小文件
  • (4)Elastix图像配准:3D图像
  • (MATLAB)第五章-矩阵运算
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (多级缓存)多级缓存
  • (二)pulsar安装在独立的docker中,python测试
  • (分布式缓存)Redis哨兵
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .net 设置默认首页
  • .Net语言中的StringBuilder:入门到精通
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ERROR] 不再支持目标选项 5。请使用 7 或更高版本