Java学习笔记10(零压力理解继承多态权限修饰符)
文章目录
- 继承
- 方法的重写(override)
- 四种访问权限修饰符:
- 关键字super
- 类对象的实例化的底层原理
- 多态
- instanceof操作符
- object类
继承
继承是Java最重要的,类之间有内在联系,子类和父类。子类比父类更 具体,表示更少的对象。子类是扩展,extends ,这个单词翻译过来也是扩展。
假如有汽车类,又有自动驾驶车类,你只要在继承汽车类加上自动驾驶方法就行了。
代码不用重复写。还是人类 Person为例,这个类里面有属性和方法。
public class Person {/*** 父类,有些共性代码*/int age;String name;int sex;public void showInfo() {System.out.println(this.name);System.out.println(this.age);System.out.println(this.sex);}
}
格式:
继承的关键字extends
类修饰名 class 子类名 extends 父类名
你看这里学生类就继承了人类的属性,name ,age ,sex.
还继承了方法。 showInfo(){}
复习一下this关键字
子类写特有的代码就行!
以学生类为例:
public class Student extends Person {String school;//不用再去定义age,name,sexpublic void showInfo() {System.out.println(this.school);System.out.println(this.name);System.out.println(this.age);System.out.println(this.sex);}}
注意:
- 继承提高了代码的效率
- 不要为了继承而继承(比如狗类继承人类,no!)
- 继承是多态的前提(后面讲)
笔记:继承,子类不是父类的子集,是扩展(extends)!(比如你比你爸更优秀)
子类不能访问父类private变量,无这个权限(比如你不能继承你爸的银行卡密码)
一个子类只能有一个父类(你只能有一个爸爸,但是你爸爸可以有多个儿子)
Java不支持多重继承,但是可以用接口来解决这个问题
Java接口
方法的重写(override)
改的只是方法体的代码就是{}里面的东西
在子类里面按住键盘的ALT+/, 如下
这就是方法的重写!
笔记:
方法的重载:一个类有哦多个同名的方法
方法的重写:子类可以重写写父类的方法,覆盖父类的方法;
子类调用父类的方法
public class Student extends Person {String school;//不用再去定义age,name,sex// public void showInfo() { System.out.println(this.school);
System.out.println(this.name);
System.out.println(this.age);
System.out.println(this.sex);
//
// }public static void main(String[] args) {Student stu = new Student();stu.showInfo();//子类调用父类的方法}}
把重写的部分注释掉,这个就变成了了子类对父类方法的继承。
四种访问权限修饰符:
笔记:
如果子类和父类在同一个包下:除了private不能访问,其他三种都可以访问,继承使用。
如果子类和父类不在同一个包下:除了private,default不能访问,只有protected public才可以访问,继承使用。
关键字super
为什么有这个关键字呢,因为继承可以是多层的,比如说你和你爸爸,你爸爸和你爷爷。为了区分你继承你爸爸还是你继承你爷爷的东西,用super指明。
笔记:
用super可以追溯父类(或父类的父类)的成员变量;
用super可以追溯父类(或父类的父类)的成员方法;
super可以自动继承父类的无参构造;
父类只有有参构造的时候,那么子类必须构建有参来调用父类的有参构早,调用父类构造方法得写在第一行。
this和super 的区别:
类对象的实例化的底层原理
图片多看几遍!!!
多态
重载:相同的方法,不同的逻辑
重写:子类对父类方法的覆盖,同方法名,覆盖逻辑。
对象的多态;
Person e = new Student();e.showInfo();
这个e.showInfo是属于Student类的方法
笔记:
栈中,e
堆,new Student(),引用栈中的e
方法在栈中运行,会动态的进站出站。
调用时进栈,用完出栈。
instanceof操作符
判断是否属于对象
案例
Person e = new Student();System.out.println(e instanceof Student);
返回的是true
object类
object类是最高层的父类(你爸爸的爸爸的祖宗)
笔记:
object类是基(根)类,默认的继承类
子曰:学而时习之!
Java学习笔记10(零压力理解继承多态权限修饰符)相关推荐
- Java学习分享—【面向对象基础】 封装、权限修饰符等...
封装 1.相关概念 java有三大特性:封装.继承.多态 封装是面向对象的思想的特性 对属性.方法.类.项目 进行封装 内部类也是封装的体现 封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和 ...
- java复习第3天---3.1---final关键字、权限修饰符
java复习第3天---3.1---final关键字.权限修饰符 目录 文章目录 1.final 关键字 1.1.修饰类 1.2.修饰成员方法 1.3.修饰成员变量 1.4.修饰局部变量 2.权限修饰 ...
- java学习笔记:零基础java学习路线+配套资料+书籍推荐
公众号菜鸟名企梦2018年,精品文章汇总: 01 我的秋招 我的秋招offer 我的offer选择 秋招全面总结-必读宝典 求职必读 02 零基础学习路线 零基础-java学习路线(上) 零基础-ja ...
- JAVA学习笔记(6)——接口与多态
一.接口 1. –与抽象类一样都是定义多个类的共同属性 –使抽象的概念更深入了一层,是一个"纯"抽象类,它只提供一种形式,并不提供实现 –允许创建者规定方法的基本形式:方法名. ...
- Java开发笔记(五十)几种开放性修饰符
前面介绍子类继承父类的时候,提到了public(公共)和private(私有)两个修饰符,其中public表示它所修饰的实体是允许外部访问的:而private表示它所修饰的实体不允许外部访问,只能在当 ...
- locust工具学习笔记(三)-Tasks属性、tag修饰符、TaskSet类
locust工具学习笔记(三) 虚拟用户数分配和权重的关系 1.一个场景文件中如果定义多个用户类,用来对不同用户行为进行压测时,可以用weight属性来控制用户行为执行权重 2.当用户权重不足1人时, ...
- Java学习笔记10(面向对象三:接口)
接口: 暂时可以理解为是一种特殊的抽象类 接口是功能的集合,可以看作是一种数据类型,是比抽象类更抽象的"类" 接口只描述所应该具备的方法,并没有具体实现,具体实现由接口的实现类(相 ...
- Java学习笔记10
当程序创建对象.数组等引用类型实体时,系统都会在堆内存中为之分配一块内存区,对象就保存在这块内存区, 当我们创建的对象不再被引用时,所在的内存就变成了垃圾,最后等待垃圾回收机制进行回收,Java的垃圾 ...
- Java学习笔记8:多态性理解
多态 是把子类对象主观看作父类型的对象编译时类型指的是被看作的类型.运行时类型指的是实际的对象实例的类型,客观不可改变.类的具体化就是对象,即对象是类的实例化. 三个必要条件:继承.重写.父类引用指向 ...
最新文章
- 实战:基于技术分析的Python算法交易
- CodeForces - 487B Strip(线段树+dp+二分)
- tim怎么设置检测到新版本自动安装 tim安全自动更新的开启方法
- Hadoop框架:HDFS简介与Shell管理命令
- SOME/IP不等同于SOA,CommonAPI-RPC通信和vsomeip基于消息通信
- html如何加入浮动客服,css如何实现客服悬浮效果
- 实测:游戏情景中,远控软件实力如何?一篇告诉你ToDesk的强大之处
- 深圳大学电信学院《C程序设计》期末大作业:《在二维封闭房间中的弹球模拟程序》
- 平均年薪40万!为什么却很少见程序员炫富?
- 安格鲁貂出现感冒如何解决?
- 图片拼图微信小程序源码下载支持多模板制作和流量主
- Spring Boot+Spring Security:记住我(Remember-Me): 基于简单加密token的方案 - 第25篇
- android点赞取消赞功能吗,Android 仿微博的点赞上报功能,持续点赞再取消
- 拉普拉斯变换的物理意义是什么
- LONGLONG to char *
- 大学三年学习报告(兼谈中国高等教育)
- 【事件相机整理】角点检测与跟踪总结
- 单链表、循环链表、双向循环链表总结
- 异常检测:综述(基本都是无监督算法)【时间序列算法:AR/MA/ARMA】【传统机器学习算法:孤独森林、One Class SVM】【深度学习算法:AutoEncoder、LSTM、DeepLog】
- LeetCode429. N 叉树的层序遍历
热门文章
- Windows7下农业银行K宝无法登录的解决方案
- python 如何把 utf - 8 字符串写入文件中_心若止水_百度空间
- 墨刀导出html5文案不能复制,如何写出优秀的交互文案? 8种技巧大分享!
- 机器学习概念:最大后验概率估计与最大似然估计 (Maximum posterior probability and maximum likelihood estimation)
- 另类电商年收入上亿美金
- repeatation翻译_半导体专业术语英语及汉语翻译
- OpenRA-RA2编译指南
- ubuntu14.04加mac实现键鼠共享(Mouse and Keyboard Sharing)的方法及尝试
- Oracle中的四种去重方式
- ros入门(七)--ros接入sick激光雷达