面向对象进阶(static&继承)
今日分享:static and 继承
static:
staic是修饰符 可以修饰方法和变量
变量:
被static修饰的变量称为静态变量
特点: 该类的所有对象都共享同一个静态变量;不属于对象属于类;随着类的加载而加载,优先于对象存在。
调用的方法:类名调用(推荐);对象名调用
方法:
被static修饰的方法称为静态方法
特点:静态方法多用于测试类或工具类;javabean类很少使用。
调用方法跟变量一样。
小tips:
工具类是指将一个功能提升到一个类中当作工具使用,工具类的写法:构造方法必须私有化,因为我们使用不到这个工具类的对;方法必须用static修饰。
static的注意事项:
静态方法中,只能访问静态;
非静态方法中可以访问所有;
静态方法中没有this关键字;(因为静态是属于类,不属于对象。this无意义)
继承:
继承是面向对象三大特性之一
继承就是俩个类之间存在的一种关系。当类与类之间存在相同(共性)的内容,并满足子类是父类的一种时就可以使用继承
使用继承的好处:可以把子类中重复的代码抽取到父类,节约代码,提高代码的复用性;
子类可以在父类的基础上添加功能,使子类更强大;
特点:java只支持单继承,不支持多继承,但支持多层继承。(就是你爸爸生你,你生你儿子这样子,自己想象);java中所有的类都直接或间接继承于Object类;
子类能从父类中继承的内容:
构造方法不能继承;
成员方法都能继承,私有变量不能直接使用,通过get/set;
成员方法只有虚方法表里的方法能够继承;(虚方法表里的方法必须非private,非static,非final);
继承中访问成员变量和成员方法的特点:
成员变量的访问特点:就近原则
先在局部位置找,找不到到本类成员位置找、父类成员位置找逐级往上。
成员方法的访问特点:
this调用:就近原则
super调用:直接找父类
方法重写:
方法重写就是在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的;
方法的重写建议加上@Override注解,可以检验重写是否正确是否正确,同时可读性好;
重写的方法尽量跟父类保持一致,只有虚方法表里的方法才可以重写;
方法重写就是覆盖虚方法表中的方法;
继承中的构造方法和this、super关键字:
父类的构造方法不会被继承;
子类中的构造方法默认都会先访问父类的无参构造,再执行自己;
因为有可能用到父类的数据,所以要先初始化父类;
子类虽然不可以继承父类的构造方法,但可以通过super关键字进行调用;
this、super使用总结:
this:可以理解成一个变量表示当前方法调用者的地址值。
super:代表父类的存储空间。
栗题:
https://download.csdn.net/download/weixin_65861329/86892533
面向对象进阶(static&继承)的更多相关文章
- day021|python之面向对象进阶1
面向对象进阶 目录 面向对象进阶 1 继承 1.1 继承入门 1.1.1 继承基础 1.1.2 类的基本使用 1.2 多继承 1.2.1 多继承的基本使用 1.2.2 多继承以后的重复性 1.3 类的 ...
- Python3 与 C# 面向对象之~继承与多态 Python3 与 C# 面向对象之~封装 Python3 与 NetCore 基础语法对比(Function专栏) [C#]C#时间日期操作 [C#]C#中字符串的操作 [ASP.NET]NTKO插件使用常见问题 我对C#的认知。
Python3 与 C# 面向对象之-继承与多态 文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继 ...
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- day26、面向对象进阶:多态、封装、反射
一.多态 什么是多态: 类的继承有两层意义:1.改变 2.扩展 多态就是类的这两层意义的一个具体的实现机. 即:调用不同类实例化的对象,下的相同的方法,实现的过程不一样 python中的标准类型就是多 ...
- C#基础总结之八面向对象知识点总结-继承与多态-接口
.方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...
- Python开发【第七篇】:面向对象 和 python面向对象进阶篇(下)
Python开发[第七篇]:面向对象 详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇) 上一篇<Python 面向对象(初级篇)> ...
- ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase
原文地址:http://www.51csharp.com/MVC/882.html ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL 引言-- 在初级篇中,我们 ...
- PHP面向对象中 static:: 与 self:: parent:: $this-> 的区别
很多好几年工作经验的PHP工程师,对PHP面向对象中 static:: .self::.parent::.$this-> 的定义和使用都不清晰,特做详细梳理: static:: 可以访问全局作 ...
- python进阶(7):面向对象进阶
学了面向对象三大特性继承,多态,封装.今天我们看看面向对象的一些进阶内容,反射和一些类的内置函数. 一.isinstance和issubclass class Foo: pass class Son( ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
随机推荐
- ASP.NET Core 6框架揭秘实例演示[35]:利用Session保留语境
客户端和服务器基于HTTP的消息交换就好比两个完全没有记忆能力的人在交流,每次单一的HTTP事务体现为一次"一问一答"的对话.单一的对话毫无意义,在在同一语境下针对某个主题进行的多 ...
- KingbaseES集群管理维护案例之---备库checkpoint分析
数据库异常关闭时,数据库关闭时来不及或者没机会做checkpoint,则需要从上一个一致性检查的开始恢复.KingbaseES备机checkpoint是不能产生checkpoint WAL日志条目 ...
- Sys_Bulkload 工具使用
一.介绍 sys_bulkload是KingbaseES提供的快速加载数据的命令行工具.用户使用sys_bulkload工具能够把一定格式的文本数据简单.快速的加载到KingbaseES数据库中,或将 ...
- day05-线程的应用04
7.线程的应用03 7.4坦克大战5.0版 增加功能: 我方坦克在发射的子弹消亡之后,才能发射新的子弹==>拓展:发射多颗子弹怎么办,控制一次最多只能发射5颗子弹 让敌人坦克发射的子弹消亡之后, ...
- torch.stack()与torch.cat()
torch.stack():http://www.45fan.com/article.php?aid=1D8JGDik5G49DE1X torch.stack()个人理解:属于先变形再cat的操作,所 ...
- Windows Admin Center无法访问
近日,有一台安装了Windows Admin Center的服务器无法访问了.遇到错误ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY.本以为这是更新了Chromium内 ...
- 《Win10——如何进入高级启动选项》
Win10--如何进入高级启动选项 第一种方法: 管理员命令提示符输入如下代码,自动重启并进入高级启动选项. shutdown /r /o /f /t 00 第二种方法: 1. 管 ...
- Python实验报告——第3章 流程控制语句
实验报告 [实验目的] 1.掌握python中流程控制语句的使用,并能够应用到实际开发中. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第三章流程控制语句实例01-09,实战一到实 ...
- filebeat中增加其他参数用来区分不同的日志来源示例
filebeat.yml配置文件参数 在source里加入了一个fields叫做"appach: true". filebeat.inputs: - type: log enabl ...
- 使用国内镜像源安装kubelet kubeadm kubectl
由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 yum install -y --nogpgcheck kubelet kubeadm kubectl 安装 Debian / ...