(2)java中的集中关系,is a, has a, 继承,重点聊聊继承
java中常见的类关系(javacore上面也有介绍道的)
1、is a关系()
2.has a 整体与局部的关系
3、继承关系 是现实世界中存在而上面两种关系又无法描述的
当然谈的最多的是继承关系,这就出现了,父类和子类。父子类之间有下面一些故事。
父子类中的一般注意事项
子类显示调用父类的构造函数 使用关键字super(), 必须放到子类构造函数的第一行,否则会报错.
super和this的区别
super主要是在子类中使用,调用父类的构造方法super(),调用父类的属性方法super.x(), super.fun();
this则主要在本类中使用只想当前对象。
重写(override)
子类根据实际的需要把从父类哪里继承来的方法自己重写,方法的定义完全相同就是,方法体不一样而已。如果同一个类中两个方法的定义完全相同的话,就会报错。
重载和重写的不同
重载(overload)
1、前提:必须在同一个类中
2、特点:
函数名相同,参数列表不同,与其他无关(访问控制符,返回值类型)
3、不同点:参数个数不同,顺序不同,类型不同
重写(override)
1、前提:继承
2、特点
函数名必须相同、参数列相容返回值
子类的返回值类型必须等于或者小于父类的返回值(这种大小,体现在一种父子关系中,就是说子类返回值应当和父类相同,或者是父类返回值类型的子类级别)
有关抽象类
有抽象函数的类(用abstract修饰的函数),该类一定是抽象类。
抽象类中不一定又抽象函数。是不是抽象类看class有没有abstract修饰
抽象类不能使用new关键字创建对象
java中的接口
java的接口其实是一种多继承
接口可以继承接口,其实是一种高度的纯抽象类
说说多态
可以说,因为有了继承才有了多态,这个可以好好体会。
1、当父类和子类具有相同的非静态成员变量,那么在多态下访问的是父类的成员变量
2.当父类和子类具有相同的静态成员变量,多态下访问的是父类的是父类的静态成员变量
3、当父类和子类具有相同的非静态方法(即子类父类的方法),多态下访问的是子类的成员方法
4、当父类和子类拥有相同的静态方法(即子类重写父类的静态方法),多台下访问的是父类的静态方法.
只要是和静态相关,都是父类优先,非静态,则是子类优先。
Java中的访问权限,声明一句话,有关访问权限的问题,说private权限是私有的,意思就是在该类中能够看到,即便是继承的子类中也是看不到的,只有通过相关的getset方法。
(2)java中的集中关系,is a, has a, 继承,重点聊聊继承的更多相关文章
- Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案
		
继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...
 - 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
		
转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...
 - java中的多态关系的运用
		
1.多态发生的三个必备条件 继承.重写.父类引用指向子类对象 2.注意 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误:如果有,再去调用子类的同名方法. 方法的重写,也就是 ...
 - 简谈java  中的 继承和多态
		
继承(extends) : 1:object 是所有类的父(基)类. 2:子类继承父类所有的内容除了(private修饰的和构造方法). 3:子类在手动创建构造方法时,必须调用父类构造方法. 4:在J ...
 - Java中实现多态的条件是什么
		
java中实现多态需要三个条件: 1,需要有继承关系的存在. 2,需要有方法的重写. 3,需要有父类的引用指向子类对象.
 - Java中特殊的类——Object类
		
Java中特殊的类--Object类 1.Object类的概述 Object类是java默认提供的类.Java中除了Object类,所有的类都是有继承关系的.默认会继承Object类,即所有的对象都可 ...
 - 深入理解Java中的继承
		
对于面向对象的程序设计而言,每一个程序员都应该去了解Java中的封装,继承和多态,那么我今天来说的主要是以继承为核心的主题. 一.关于对继承的理解. 继承是面向对象的三大特性之一,是java中实现代码 ...
 - java中error和exception的区别
		
转自:https://www.jianshu.com/p/e8bbee3c1c4a Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的 ...
 - Java中内存中的Heap、Stack与程序运行的关系
		
堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题:而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题:堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动 ...
 
随机推荐
- 棒!使用.NET Core构建3D游戏引擎
			
原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/ 作者:ERIC MELLINO 翻译:杨晓东(Savorboa ...
 - 纯CSS3动画:一棵跳舞的树
			
<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/htm ...
 - C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)
			
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...
 - Iterator——迭代接口
			
迭代对于JAVA的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator.ha ...
 - testNG实现test失败后重复执行,
			
test失败自动执行大大提高测试结果的准确性, 1.修改testNG源码实现test失败自动执行, 首先获取testng的源码, 获取源代码,构建过程: $ git clone git://githu ...
 - ubuntu下包管理器apt-get常用命令
			
apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-get install package ...
 - 事件详解<一>
			
一 扭转对事件的认知 事件,是js和html交互的桥梁.当用户操作页面上的元素,比如点击,鼠标移入移出,然后做一些事情. 你若触发,我便执行--事件发生,调用它的处理函数执行相应的JavaScript ...
 - IBM面试记
			
link:http://kb.cnblogs.com/page/107213/ 话说其实我很久没有被正经面试过了.一开始去微软实习自然经过了经典的笔试和几轮面试,然后去了朋友的创业公司并立即被激动集团 ...
 - 【WCF】服务并发中的“可重入模式”
			
WCF服务实例的并发模式是在服务实现类上,使用 ServiceBehaviorAttribute 的 ConcurrencyMode 属性来指定.其值由 ConcurrencyMode 枚举来界定,这 ...
 - 快速记录 IE8 下三个问题
			
快速记录 IE8 下三个问题 昨天 pc 端网站上灰度,发现多个在 IE8 下的问题,描述和解决方案如下: 第一个问题是 css 文件过大 现象 把项目所有的 css 打包成单个文件,在现代的浏览器下 ...