JAVA笔记6-继承和权限控制
1、
(1)类的成员的权限修饰符有public,protected,private或default,限定其他对象对该类对象成员的访问权限。

(2)class的权限修饰符只可以是public或default
public:类可以在任何地方被访问;
default:类只可以被同一个包内部的类访问。
2、继承
(1)Java中使用extends关键字实现继承;
(2)通过继承,子类自动拥有了基类所有成员(成员变量和方法,但构造方法不能被继承),将父类的private成员也继承下来,但是不能访问(有父类private成员的所有权,但没有使用权);
(3)Java只支持单继承,不允许多继承。
3、继承的例子


4、重写overwirte或override
(1)子类中可以根据需要对基类中继承来的方法进行重写;
(2)重写方法必须和被重写方法具有相同的方法名称、参数列表和返回类型;
(3)重写方法不能使用比基类中被重写方法更严格的访问权限。
(4)重写方法抛出的异常必须是基类中被重写方法抛出的异常或其子类。
(4)对于基类中private的方法不能被重写,子类中定义相同名称的方法时,是新方法,而非重写。
对比:重载overload:方法名相同,参数个数或参数类型不同才构成重载(编译器可以区分开),只有返回值类型不同不构成重载(编译器无法区分开)。
5、super关键字(面宝)
使用super来引用基类。


6、继承中的构造方法
(1)子类的构造过程中必须调用其基类的构造方法;
(2)子类可以在自己的构造方法中使用super(参数列表argument_list)调用基类的构造方法;
使用this(参数列表)调用本类中其他的构造方法。
super(参数列表),this(参数列表)都必须写在子类构造方法的第一行,显然二者不能同时被调用。
(3)如果子类的构造方法中没有显示调用基类构造方法,则系统默认调用基类无参构造方法;
(4)如果子类的构造方法中既没有显示调用基类构造方法,而基类中又没有无参构造方法,则编译出错。
JAVA笔记6-继承和权限控制的更多相关文章
- Java之封装与访问权限控制(一)
目录 Java之封装与访问权限控制(一) 封装的概念 访问控制符 属性私有化 Java之封装与访问权限控制(一) 对于封装的概念,我总觉得自己还是挺了解的,但是真要我说,还真说不出个啥来.我只能默默地 ...
- Java面试题03-访问权限控制
Java面试题03-访问权限控制 1. Java中的包主要是为了防止类文件命名冲突以及方便进行代码组织和管理,因此采用域名倒置的方式来进行命名: 2. Java解释器的运行过程:首先找到环境变量CLA ...
- Java之封装与访问权限控制(二)
目录 Java之封装与访问权限控制(二) 包:库单元 import import static Java常用包 Java之封装与访问权限控制(二) 访问权限控制是具体实现的隐藏,是封装性的一部分体现. ...
- Java编程思想之六访问权限控制
访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关. 访问权限控制的等级,从最大权限到最小权限依次为:public,protected,包访问权限(没有关键字)和private ...
- Java利用Mybatis进行数据权限控制
权限控制主要分为两块,认证(Authentication)与授权(Authorization).认证之后确认了身份正确,业务系统就会进行授权,现在业界比较流行的模型就是RBAC(Role-Based ...
- JAVA基础--继承和权限控制
1. extends继承 2. java只支持单继承,不允许多继承 修饰符 类内部 同一个包 子类 任何地方 private YES default YES YES protect ...
- java基础-类成员访问权限控制
一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制 ...
- MySQL 初学笔记 ① -- MySQL用户登录权限控制
1. MySQL 登录 MySQL -u username -p 2. MySQL 创建用户 use mysql //进入mysql 表 INSERT INTO user (Host,User,Pas ...
- java中使用二进制进行权限控制
基本概念 package test; publicclass Rights { publicstaticvoid main(String[] args) { int a=1; // 001 状态a i ...
随机推荐
- 非常好的一个JS代码(CJL.0.1.js)
/*! * Cloudgamer JavaScript Library v0.1 * Copyright (c) 2009 cloudgamer * Blog: http://cloudgamer.c ...
- Spring基于SchedulingConfigurer实现定时任务
Spring 基于 SchedulingConfigurer 实现定时任务,代码如下: import org.springframework.scheduling.annotation.Schedul ...
- TP5使用phpoffice phpexcel包操作excel(导出)
安装composer(window版本) 安装composer(MAC版本) 安装composer(Linux版本) 在PhpStorm配置 导出excel 1.使用composer安装phpoffi ...
- six库 解决python2的项目如何能够完全迁移到python3
six库 解决python2的项目如何能够完全迁移到python3 SIX是用于python2与python3兼容的库. 它存在的目的是为了拥有无需修改即可在Python 2和Python 3上同时工 ...
- 使用git保存管理代码
1.git是个代码版本管理软件,类似SVN github是个网站,提供git服务,我们只需要注册个账号,就可以使用它的git服务,不需要自己部署git系统 git需要先在电脑端安装,安装完成后,讲产生 ...
- golang日志框架--logrus学习笔记
golang日志框架--logrus学习笔记 golang标准库的日志框架非常简单,仅仅提供了print,panic和fatal三个函数,对于更精细的日志级别.日志文件分割以及日志分发等方面并没有提供 ...
- css3中单位rem与.less结合布局
rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注.这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素. ...
- dedecms 列表标签 去斜杠 去两边空格
首先:将 include/arc.listview.class.php 文件的第53行: $this->Fields['title'] = ereg_replace("[<> ...
- Delphi ListBox组件
- 解压速度更快, Zstandard 1.4.1 发布
zstd 1.4.1 发布了,zstd 又叫 Zstandard,它是一种快速无损压缩算法,主要应用于 zlib 级别的实时压缩场景,并且具有更好的压缩比.zstd 还可以以压缩速度为代价提供更强的压 ...