(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与程序运行的关系
堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题:而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题:堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动 ...
随机推荐
- 多线程——NSThread
创建和启动线程 一个NSThread对象就代表一条线程 // 创建.启动线程 NSThread *thread = [[NSThread alloc] initWithTarget:self sele ...
- redis&rabbitMQ安装
前言: 学习python已经有一段时间了,最近在学twisted(博客:twisted安装),redis,rabbitMQ感觉有点难度,所以还是写下博客整理下. 一.Redis的安装 redis是一种 ...
- Unsupported major.minor version 52.0错误解决 Ubuntu JDK8 安装配置
Unsupported major.minor version 52.0错误一般是因为应用程序需要JDK8而ubuntu默认的是jdk7,所以需要切换到jdk8才能解决这个问题. 本文使用PPA方式安 ...
- 说说 bash 的 if 语句
说说 bash 的 if 语句 在开始先给大家列出几个术语,不做解释,不懂的可以参考其它资料. 术语和符号: 退出状态码 $? [...] (中括号,方括号) [[...]] (双中括号,双方括号) ...
- Python自然语言处理学习笔记之信息提取步骤&分块(chunking)
一.信息提取模型 信息提取的步骤共分为五步,原始数据为未经处理的字符串, 第一步:分句,用nltk.sent_tokenize(text)实现,得到一个list of strings 第二步:分词,[ ...
- ICMP(网际控制报文协议)
为了更有效的提高ip数据报的成功转发和交付的效率,在网际层使用了icmp网际控制报文协议,这个协议允许主机和路由器提供差错和异常情况的报告,icmp不是高层协议,而是网际层的协议,加在ip数据报中一起 ...
- C#数组和集合
一维数组 概述:数组是通过指定数组的元素类型.数组的(秩)维数及数组每个维度上的上限和下限来定义的,及一个数组的定义需要包含以下几个要素. 类型 数组的维数 每个维的上限下限 声明:数据类型 ...
- [Hadoop] - Hadoop Mapreduce Error: GC overhead limit exceeded
在运行mapreduce的时候,出现Error: GC overhead limit exceeded,查看log日志,发现异常信息为 2015-12-11 11:48:44,716 FATAL [m ...
- List<bean>转换Jsonarray知识心得
使用基本的jdbc连接mysql,获取数据. 创建实体类user: package com.json; public class user { private int id; private Stri ...
- 简单却又复杂的FizzBuzz面试编程问题
写这篇文章主要是因为偶然看到一篇关于stackoverflow公司的面经中提到了一个有趣的面试编程问题,如题所述:FizzBuzz问题.原文引用如下: “在一些公平的考验之后,我发现那些因为代码而抓狂 ...