Java学习笔记:02面向对象-重写_this_super_抽象类
02面向对象-重写/this/super/抽象类
****1.this和super
作用:
this: 区分本类的成员变量和局部变量同名情况
super:区分父类的成员变量和局部变量同名情况
用法:
this.成员变量名;//访问本类的成员变量
this.成员方法名();//调用本类成员方法(this可以省略)
super.成员变量名;//访问父类的成员变量
super.成员方法名();//调用父类的成员方法(super不可以省略)
2.扩展:
this(参数);//调用本类的其他构造,具体是哪一个构造,由参数类型决定
super(参数)/调用父类的构造,具体哪一个构造,由参数类型决定
结论:a.子类中任何一个构造,都会无条件先调用父类的无参构造
b.我们可以通过 super(参数),调用父类中指定参数的构造
****3.方法的重写:
在子类从 出现了和父类一模一样的方法(修饰符可以不一样) 那么子类中这个方法我们重写后的方法
a.注意事项
1: 子类和父类中重写的那个方法权限可以不一样,子类方法权限>=父类方法权限
2.如果父类的方法是private修饰,子类不能重写
b.什么时候需要进行方法的重写
父类中方法,太low,不适用,不完善,那么子类需要自己重写他,自己实现他
****4.抽象类
概念:
什么叫抽象类: 只要一个类 是abstract修饰的那么这个类就是抽象类
和 这个类中有没有抽象方法,没有必然的联系
什么叫抽象方法:
方法由abstract修饰,并且没有方法体的方法
一个抽象类的 是可以没有抽象方法,那么这个类的作用不允许你创建对象
作用:
不能创建对象,天生作为父类
抽象类中的抽象方法有什么作用?
1.抽象类中的抽象方法不是为了调用的
2.为了强制子类去重写
Java学习笔记:02面向对象-重写_this_super_抽象类的更多相关文章
- Java学习笔记之---面向对象
		
Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...
 - Java学习笔记之---比较接口与抽象类
		
Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有 ...
 - 【8-20】java学习笔记02
		
others 初始化块在构造器前执行: 静态初始化块和实例变量显示初始化执行顺序为各自定义的位置: final类不能派生子类,final方法不可覆盖,final变量不可重新赋值: 判定值相等,Stri ...
 - Java学习笔记之面向对象、static关键字
		
一周Java学习总结 今天就总结理清一下关于面向对象和面向过程的程序设计的一些不同特点,以及讲下static关键字. 面向对象 现在接触的Java是面向对象的,现在的程序开发几乎都是以面向对象为基础的 ...
 - Java 学习笔记(4)——面向对象
		
现在一般的语言都支持面向对象,而java更是将其做到很过分的地步,java是强制使用面向对象的写法,简单的写一个Hello Word都必须使用面向对象,这也是当初我很反感它的一点,当然现在也是很不喜欢 ...
 - 【Java学习笔记之二十一】抽象类在Java继承中的用法小结
		
一.抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容.而抽象类是指在普通类的结构里面增加抽象方法的组成 ...
 - 【原】Java学习笔记017 - 面向对象
		
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 继承关系中的pri ...
 - 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写
		
一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...
 - Java学习笔记(八)面向对象---抽象类
		
当多个类中出现相同功能,但是功能主体不同时,我们可以向上抽取,只抽取功能定义,而不抽取功能主体. 抽象类的特点 抽象方法一定在抽象类中. 抽象方法和抽象类都必须被abstract关键字修饰. 抽象类不 ...
 
随机推荐
- attachEvent
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - TCP连接的状态转换图深度剖析
			
转载请注明来源:https://www.cnblogs.com/hookjc/ 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示. (1)第一次握手:建立连接时 ...
 - Spring中声明式事务处理和编程式事务处理的区别
			
编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理.管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManag ...
 - https校验问题
			
一般会报SSL问题:解决办法参考 http://blog.csdn.net/a506681571/article/details/78284589 # 设置未经允许验证的SSL方法,只需运行一次便可 ...
 - OSI七层协议&TCP协议(三次握手四次挥手)
			
今日内容 python 基础回顾 软件开发架构 网络理论前戏 OSI 七层协议(五层) TCP协议 三次握手与四次挥手 UDP协议 内容详细 一.python 基础回顾 1.基本数据类型 整型 int ...
 - 打造一款属于自己的CentOS操作系统
			
文章目录 声明 关闭selinux以及firewalld 修改终端前缀显示 修改默认网卡名称为eth0 替换yum源 安装常用工具 优化history 配置回收站 迎宾显示 优化vim 清空yum缓存 ...
 - MYSQL文件复制及备份
			
周末研究了下mysql的数据结构,记录下: 场景1:当从一台电脑的mysql的data中复制数据库的文件夹到另一台电脑上时会发现 表不存在,函数等也不存在 方法:1.需要将data根目录下的ibdat ...
 - 【axios三部曲】一、使用axios
			
axios作为一个基于promise的网络请求库,它同时支持浏览器和node环境,是我们开发中常用的一个库  它的一些特性: 从浏览器发出XMLHttpRequests 从node.js发出http ...
 - Python 中 base64 编码与解码
			
base64 是经常使用的一种加密方式,在 Python 中有专门的库支持. 本文主要介绍在 Python2 和 Python3 中的使用区别: 在 Python2 环境: Python 2.7.16 ...
 - JavaSE-万字长文-加载时间长-小白文
			
Java语法规范 所有的Java语句必须以;结尾! 无论是().[]还是{},所有的括号必须一一匹配! 主方法的代码只能写在{}中! Java基础语法(面向过程) 在学习面向对象之前,我们需要了解面向 ...