java整理(三)
1.继承性:继承已有的功能。使用extends关键字。class 子类 extends 父类{}
子类又被称为派生类,父类又被称为超类。
继承的限制:
1.java中,不允许多重继承,即一个子类只能继承一个父类。一个C子类,想同时继承A和B,不可以多重继承,可以多层继承。class A{}class B extends A{}class C extend B{}
2.子类继承的时候,将父类的内容全部继承下来,一下两点区别:所有的非私有操作采用显式继承。(子类可以直接使用)。所有的私有操作采用隐式继承(子类可以间接操作,可以通过方法操作)。
3.子类对象在进行实例化之前,会默认调用父类中的无参构造方法,为父类属性分配空间,之后再调用子类自己的构造方法,为本类属性分配空间。
2.覆写
继承关系发生后,对于子类而言很有可能定义了与父类相同的方法或者属性,这个时候就会发生覆写的问题,当然覆写分为:方法的覆写和属性的覆写。
方法的覆写就是子类定义了与父类相同的方法的时候(方法名称相同,参数的类型或个数相同、返回值类型相同)。
覆写的时候要注意权限问题,被子类所覆写的方法不能拥有比父类更严格的访问控制权限。(就开发而言,在开发之中,基本上的方法90%都是使用public权限定义的)
this和super的操作范围:
this.方法()指的是调用本类的方法,如果本类中不存在此方法再从父类中查找使用;
super()方法指的是直接调用父类中的方法,不再查找子类。
属性的覆写:其实没有意义,因为属性必须封装,封装之后就无法覆写了。
覆写和重载的区别
|
NO. |
区别 |
重载 |
覆写 |
|
1 |
单词 |
OverLoading |
Override |
|
2 |
概念 |
方法名称相同,参数的类型或个数不同 |
方法名称,返回值类型、参数的个数及类型全部相同 |
|
3 |
范围 |
发生在同一个类之中 |
发生在继承关系中 |
|
4 |
权限 |
重载的时候没有权限设置 |
子类覆写的方法不能拥有比父类更严格的访问控制权限 |
this和super的区别
|
NO. |
区别 |
this |
super |
|
1 |
属性 |
this.属性指的是找到本类的属性,如果本类没有找到则继续查找父类 |
super.属性直接在子类之中查找父类中的指定属性,不再查找子类本身 |
|
2 |
方法 |
This.方法()指的是找到本类的方法,如果本类没有找到则继续查找父类 |
Super.方法()直接在子类之中查找父类中的指定方法,不再查找子类本身 |
|
3 |
构造 |
都必须放在构造方法的首行,所以两个操作不能同时出现 |
|
|
4 |
特殊 |
表示当前对象 |
|
3.final关键字
final 可以定义类、属性、方法。
1.使用final定义类:意味着这个类不能有子类,就是一个太监类(个人定义的不多,系统类上经常出现)
2.final定义方法:方法不能被子类覆写,在开发中很少直接编写。
3.final定义的变量成为常量,内容不可改变,而且必须在定义的时候为其设置内容。
java整理(三)的更多相关文章
- 20165324 Java实验三 敏捷开发与XP实验
20165324 Java实验三 敏捷开发与XP实验 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年4月16日 ...
- Java EE : 三、图解Session(会话)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.Session由来 二.Sessio ...
- JAVA第三周作业(从键盘输入若干数求和)
JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...
- 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三
编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三
- Java的三种代理模式
Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...
- Java的三种代理模式简述
本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...
- Java进阶(三十九)Java集合类的排序,查找,替换操作
Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...
- Java进阶(三十八)快速排序
Java进阶(三十八)快速排序 前言 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 ...
- Java进阶(三十七)java 自动装箱与拆箱
Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...
- Java进阶(三十六)深入理解Java的接口和抽象类
Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...
随机推荐
- 0X7FFFFFFF,0X80000000
给int类型赋值的话,0X7FFFFFFF代表最大值,0X80000000代表最小值 INT_MAX 代表最大值, INT_MIN 代表最小值 #include<iostream> #in ...
- 一个用 vue 写的树层级组件 vue-ztree
最近看了大神的关于vue-ztree的博客,感觉很赞,于是摘抄下来,方便自己学习,机智girl,哈哈哈O(∩_∩)O 最近由于后台管理项目的需要,页面需要制作一个无限树的需求,我第一感就想到了插件 z ...
- leetcode 6 ZigZag Conversion(水题)
就是简单的模拟一下就可以了.但是我一开始是用一个二维char数组来存的,这样在最终扫全体时会扫很多空的位置,浪费了很多时间,所以就time limit error了. 所以改进一下就用string数组 ...
- PS 滤镜——水波 water wave
%%%% Water wave %%%% 制作水波效果 clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Process ...
- php各种验证类
<?php /** * 验证类 * */ class VerifyAction{ /** * 是否为空值 */ public static func ...
- 动态调试smali代码学习记录
预备知识 DDMS Dalvik Debug Monitor Serivce,Dalvik调试监控服务,为Android SDK提供的一款拥有监控Dalvik虚拟机的调试软件,启动文件位于<An ...
- WSGI服务与django的关系
WSGI接口 wsgi是将python服务器程序连接到web服务器的通用协议.uwsgi是独立的实现了wsgi协议的服务器. web服务器 服务端程序 简化版的WSGI架构 服务端程序(类似dja ...
- flask+uswgi+nginx+python3.6的venv发布网站ubuntu14.04
---------------------------nginx--------------- sudo apt-get install nginx sudo apt-get remove nginx ...
- Poj 1742 Coins(多重背包)
一.Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dolla ...
- Java 的 Tuple 元组数据类型
元组类型,即 Tuple 常在脚本语言中出现,例如 Scala 的 ("Unmi", "china@qq.com", "blahbla"). ...