java学习笔记(4)多态
一、多态
---------------------------------------------
1.定义:某一类事物的多种存在形态
例如:动物中猫,狗。
猫这个对象对应的类型是猫类型
猫 x = new 猫();
同时猫也是动物的一种,也可以把猫称之为动物。
动物 y = new 猫(); //这里注意:动物是猫和狗在具体事物中抽取出来的父类型,这个地方是父类型的引用指向子类对象
2.在程序中的体现:
父类或者接口的引用指向或者接受自己的子类对象。
3.好处和作用:多态的存在提高了程序的扩展性和后期的可维护性
4.前提:需要存在继承或者实现关系;需要覆盖操作。 5.构造函数为什么没有返回值类型声明? -----------------------------------------
构造函数也是函数,其实也是有返回值的,返回的就是对象的类型,而构造函数和类名相同,返回的类对象的实例。
2.阐述对象创建的过程。
------------------------------------------
创建对象主要是指对象的构造过程,与静态代码块无关,静态代码块是在类加载的时候执行的,而且静态代码块只加载一次
3.构造代码快可以访问之后定义的成员变量吗?
------------------------------------------------
构造代码块访问成员变量与定义在前后的顺序是没有关系的,构造函数是一个方法,这个过程需要在栈中进行相关的执行
4.静态成员和非静态的区别?
---------------------------------------
静态变量使用static修饰符来进行相关的声明,在类被实例化的时候进行相关的创建,通过类进行访问不带有static修饰符声明的变量称为非静态成员变量,
在对象被实例化的时候进行相关的创建,通过对象进行访问一个类的所有实例的同一静态变量都是统一个值
静态成员跟类有关,跟对象无关,访问静态成员,直接使用类名.方法进行相关的访问
非静态就是通过对象的方式来访问,
5.怎么理解this,什么时候用this?
----------------------------------
在类的内部,使用this来访问当前对象,来指向当前的一个引用,是一个指向自身的一个指针,
6.构造函数调用其他构造函数的方式?
----------------------------------
this() //调用构造函数,就是过程的重用过程
7.回执java stack +heap的运行机制,如何调整堆和栈空间的大小。
面向对象的三个特征:封装、继承和多态
8.this关键字和super关键字的区别
--------------------------------------------------
属性的区别:this访问本类中的属性,如果本类中没有属性,则在父类中继续进行查找。super访问的是父类的属性。
方法的区别:this访问的是本类的方法,如果本类中没有方法则在父类中继续进行相关的查找。super访问的是父类中的方法。
构造函数的区别:this调用本类的构造,必须放在本类方法的行首,super调用父类的构造函数,必须放在父类构造方法的行首。
2.this.变量和super(参数)方法
this.变量调用当前对象的变量;super.变量直接调用父类中的变量
3.this(参数)调用的当前类中的构造器
super(参数)用于确认要使用父类中的哪个构造器
4.在对拥有父类的子类在进行初始化的时候,父类的构造方法也会被执行,而且优先于子类的构造函数进行相关的执行;因为在每一个构造函数中的第一行都有一条默认的隐式语句
5.this()和super()都只能写在构造函数的第一行
6.this()和super不能存在于同一个构造函数中。1:this()和super()都必须写在构造函数的第一行;2:this()语句调用的是当前类的另一个构造函数而这个构造函数中必然有一个父类构造器,再使用super()又调用一次父类构造器,相当于调用了两次父类的构造器,编译不会通过
7.this和suepr不能用于static修饰的变量、方法以及方法快;因为this和super都是指的是对象
java学习笔记(4)多态的更多相关文章
- 1.12(java学习笔记)多态及向上、向下转型
一.多态 多态是指同一个方法被调用,由于对象不同导致行为不同. 例如调用自由活动方法,张三喜欢玩耍,那么他就会去玩耍. 李四喜欢学习,那么他可能去学习.调用方法因对象的不同 而产生了不同的行为. 形成 ...
- Thinking in java学习笔记之多态
多态是一种将改变的事物和未变的事物分离开来的重要技术.
- Java学习笔记之多态
1.父类型的引用可以指向子类型的对象: Parent p = new Child(); 2.当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误:如果有,再去调用子类的该同名方法 ...
- Java学习笔记之——多态、抽象
1. 多态 多态:同一种事物调用同一个方法有不同的表现行为.(同一类型操作,作用于某一类对象,可以有不同的解释,产生不同的执行结果) 应用场景;当你定义一个功能性的方法可以使用多态的概念 前提:子类继 ...
- java学习笔记_多态
多态:父类的变量可以引用子类的对象 引用: Student s1 = stu; s1.setScore(200); 1.一个对象可以有多个引用,可以有多个变量操作同一个对象 2.当一个对象没有任何 ...
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
随机推荐
- [BZOJ3611][Heoi2014]大工程(虚树上DP)
3611: [Heoi2014]大工程 Time Limit: 60 Sec Memory Limit: 512 MBSubmit: 2464 Solved: 1104[Submit][Statu ...
- SQL中模糊查询的模式匹配
SQL模糊查询的语法为: “Select column FROM table Where column LIKE 'pattern'”. SQL提供了四种匹配模式: 1. % 表示任意0个或多个字符. ...
- 利用Zookeeper实现分布式锁
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
- scrum例会报告+燃尽图02
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9955 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名 ...
- Docker报错: TLS handshake timeout”。
Docker 默认拉取国外镜像,换成国内就搞定. 为了永久性保留更改,您可以修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值. { &quo ...
- jquery实现对象数组 筛选出每条记录中的特定属性字段 及根据某个属性值筛选出指定的元素
jquery实现对象数组 筛选出每条记录中的特定属性字段 直接上图: 源码: /** * 对后端返回的数据,筛选出符合报表的列项,多余的列项去除 */ function filterParams(da ...
- 布尔 kotlin(4)
布尔布尔用 Boolean 类型表示,它有两个值: true 和 false .若需要可空引用布尔会被装箱.内置的布尔运算有:|| – 短路逻辑或&& – 短路逻辑 ...
- DAY 4模拟赛
DAY 4 zhx出题 T1 裂变链接 [问题描述] 你是能看到第一题的 friends 呢. ——hja 众所周知,小葱同学擅长计算,尤其擅长计算组合数,但这个题和组合数没什么关系. 现在有
- Ubuntu下查找nginx日志
使用awk检测nginx日志, 按小时计数 awk '{split($4,array,"[");if(array[2]>="29/May/2016:00:00:26 ...
- simple vimrc for python
"显示行数,设置软回车和缩进还有语法set numberset expandtabset tabstop=8set shiftwidth=4set softtabstop=4set auto ...