java类和对象:封装、继承和多态
类成员的访问修饰符 :
作用域修饰符 同一个类中 同一个包中 子类中 任何地方 private 可以 不可以 不可以 不可以 默认修饰符 可以 可以 不可以 不可以 protected 可以 可以 可以 不可以 public 可以 可以 可以 可以 变量:
- 成员变量会有初值:参考数组的初值(整形0,浮点型0.0,布尔类型false,char类型是空格,引用类型是null)
- 局部变量没有初值
方法重载:同一个类中、方法名相同、参数个数或类型不同、与返回值、访问修饰符无关
继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类
继承条件下构造方法的调用规则:
- 子类构造方法没有通过super显式调用父类的有参构造方法,也没通过this显式调用自身其他构造方法,系统默认调用父类的无参构造方法
- 子类构造方法通过super显式调用父类的有参构造方法,执行父类相应构造方法,而不执行父类无参构造方法
- 子类构造方法通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则
方法重写:
- 方法名相同
- 参数列表相同
- 返回值类型相同或者是其子类
- 访问权限不能严于父类
- 父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法
- 子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法
- 父类的私有方法不能被子类覆盖
- 不能抛出比父类方法更多的异常
方法重写与方法重载区别:
比较项 位置 方法名 参数表 返回值 访问修饰符 方法重写 子类 相同 相同 相同或是其子类 不能比父类更严格 方法重载 同类 相同 不相同 无关 无关 抽象方法:
- 抽象方法没有方法体
- 抽象方法必须在抽象类里
- 抽象方法必须在子类中被实现,除非子类是抽象类
静态代码块
- 某个类当中固有的代码块
- 一个类当中可以有多个静态代码块,按编写顺序执行
- 静态代码块,只会在类被****加载****的情况下执行一次(声明例外)
- 类加载机制:只要执行了和这个类有关的****调用****,那么该类必然已经被加载
抽象类:
- 在抽象类当中,可以有普通方法,也可以有抽象方法;但是,抽象方法只能在抽象类当中声明;
- 抽象类除了多了抽象方法和不能被实例化之外,和普通类一致
- 抽象方法的语法,在修饰符和返回值之间,添加关键字abstract,抽象方法没有方法体,即不需要立即实现
- 没有抽象的属性
- 抽象类,不可被实例化
- 抽象方法必须在子类当中被实现,除非子类也是抽象类,也就是说,在抽象的类的子类当中,只要有一个子类实现了抽象方法,其后代将不必一定实现该抽象方法
- 对于一个子类来说,其父类当中所有的抽象方法,如果没有被实现过,那么将都需要去实现这些抽象方法
向上转型:父类声明指向子类对象
- 向上转型,父类声明,只能调用子类重写的方法,或者本身实现没有被子类重写的方法
- 多个子类实现同一个****重写****的方法,优先调用距离实现类最近的那个
- 向上转型,子类特有的方法,无法被调用
- 向上转型属于自动类型转换
向下转型:强制将父类型变为子类型
- 首先要向上转型过了,才能向下转型
- 向下转型之前,一定要判断实例的类型,要强转为那个引用,就判断是否是这个引用
- 向下转型属于强制类型转换
接口:
- 语法:使用interface来声明
- 方法:所有的方法都是抽象方法,不存在普通方法
- 抽象方法,只能使用共有的和默认的两种修饰符;因为,如果是私有的,那么除了本类以外不可见,如果是受保护的,要继承可见,那么问题就是****是否可见****。
- 接口当中,所有的属性都是静态常量
- 接口可以多实现,用逗号隔开,但是继承只能单根继承
- 接口同样不可以被实例化
- 接口和接口之间是多继承
- 所有接口当中的抽象方法,都必须被实现类实现
- instanceof判断是否是某个类型,看实现类,而不是看声明的类型
- 接口没有构造,抽象类有构造
java类和对象:封装、继承和多态相关推荐
- python类与对象 封装继承与多态 0308
类与对象 初始化方法 init方法 带参实例化类 del方法 str方法 私有 继承 方法的重写 super 父类名称调父类方法 调用父类私有 间接调用 多继承 新式类经曲类 多态 类属性 类方法 静 ...
- python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态
六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...
- 面向对象 详解笔记 方法 类 对象 封装 继承 重写 多态 接口
文章目录 面向过程&面向对象 面向过程 面向对象 什么是面向对象 回顾方法及加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环和return的区别 方法名:注意规范就o ...
- Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态
Hello,大家好~我是你们的Hachi君,一个来自某学院的资深java小白.最近利用暑假的时间,修得满腔java语言学习心得.今天小宇宙终于要爆发了,决定在知乎上来一场根本停不下来的Hachi君个人 ...
- 杨校老师课堂之Java类与对象、封装、构造方法
杨校老师课堂之Java类与对象.封装.构造方法 本篇文章内容如下: 面向对象 类与对象 三大特征--封装 构造方法 教学目标 能够理解面向对象的思想 能够明确类与对象关系 能够掌握类的定义格式 能够掌 ...
- Java基础知识之封装+继承+多态详解
前言 这篇博客是基于Java类和对象的基础之上的相关知识点.因为特别重要且语法规则较多,所以想单独总结方便之后复习. 本篇博客涉及知识点思维导图: 目录 1.封装 2.继承 3.多态 1.封装 生活中 ...
- java 类与对象、封装、构造方法
java 类与对象.封装.构造方法 面向对象 类与对象 三大特征--封装 构造方法 第1章 面向对象思想 1.1 面向对象思想概述 概述 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种 ...
- java类和对象程序_Java类与对象程序设计基础
Java类与对象程序设计基础 一.实验目的: 通过编制一个独立应用程序,使得学生掌握Java的系统所提供类的引用方法:通过编制一个完整的应用程序,使得学生对Java的应用程序的基本构成和基本算法熟练掌 ...
- 实验2 Java类和对象的设计
实验题目:Java类和对象的设计 一.上机目的和要求 理解面向对象的编程思想.类与对象的概念: 加深理解封装性.继承性和多态性: 掌握this.super.final.static等关键字的使用: 掌 ...
- [黑马程序员C++笔记]P99-P104类和对象-封装
视频地址:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 目录 P99类和对象-封装-属性和行为作为整体 P100类和对象-封装-案例-设计学生类 P101 ...
最新文章
- c++ windows获得当前工作目录文件_基于linux下Python文件操作
- 如何利用 C# 爬取「京东 - 计算机与互联网图书销量榜」!
- Activity一共有以下四种launchMode
- python——迭代器
- SringBoot+Redis整合
- android 写字体投影,android-给字体设置投影
- uwp post php,window_Win10开发系列专题五 UWP应用添加画布及语音输入支持,这是微软Win10十个开发系列专 - phpStudy...
- ConceptDraw使用Rapid Draw简化流程图教程指南
- ListView优化问题
- springboot自定义Servlet容器
- 微信公众号,图文编辑超链接中,没有外部链接只能增加公众号链接是什么情况?
- iPhone之手势切换图片
- 远程连接android手机(调试)
- 点线联合优化估计相机姿态(IROS 2022)
- 芳香四十二点一九五里...
- VPS云主机套餐中都包含什么
- LVGL各种缓冲区分析比较(源码角度)
- 插值、平稳假设、本征假设、变异函数、基台、块金、克里格、线性无偏最优…地学计算概念及公式推导
- 三十八载,Oracle伴我同行—记我的职业成长之路
- Unity之生成扫描二维码
热门文章
- 计算机考试考试被纳入中考了吗,中考迎来变动,将在2022年正式执行,学生家长们注意了!...
- 屌丝逆袭,通过相亲实现阶层跃迁的秘诀
- 摩托罗拉edge S30冠军版今日开售:价格最便宜12+512G手机
- NVIDIA 发布 60 余项 CUDA-X 库更新,加速量子计算和 6G 研究等
- 空间站是如何绕地飞行的?张朝阳物理课开播啦
- 雷军再失猛将!小米12号创始员工离职 曾一起喝粥创立小米
- “最佳前任”!字节跳动给员工发春节红包,离职员工也有,最高6888元
- 研究称:苹果开始感受到全球芯片短缺影响,但三星等受影响更大
- 威马EX6 Plus探险之旅!房山郊区竟藏着个1万平超大废弃矿洞?
- 华为nova 8i渲染图曝光:背部设计神似Mate30