Day03:数组 、 继承的意义(上)
继承
面向对象编程三(四)大特征
(抽象),封装,继承,多态
什么是继承?
继承是面向对象编程中一种代码复用的方式
为什么需要继承?
减少代码冗余,提高程序的可维护性和可扩展性
怎样使用继承?
语法:
- class 类名A extends 类名B{
- }
类名A继承了类名B
类名A中可以使用类名B中的属性和方法
类名A称之为子类(派生类)
类名B称之为父类(超类,基类)
继承的特性:
1.子类类中可以调用父类成员
2.子类对象打.可以调用父类成员
3.子类继承父类应该符合is-a原则
4.构造方法无法被继承
继承的单根性:
一个类只能继承一个父类
继承的传递性:
子类可以调用到祖先类的成员
Object类
java中所有类的父类是Object
所有类型对象都可以调用Object类中的方法
编写的类,如果没有继承任何类,默认继承Object
构造方法的执行
实例化子类对象先运行父类构造
子类对象中实际包含着一个父类的构造方法(使用spuer)
如果子类构造方法中不指定调用父类的哪个构造,默认调用父类的无参构造
extends关键字
继承是代码复用的一种形式。
提高代码的复用性,简化了代码,让类与类之间产生了继承关系,才有了多态特性的存在。
注意:
千万不要为了其他类的功能简化代码,而建立继承关系,必须要类与类之间存在继承关系。
子类拥有父类的成员,子类不能拥有父类中被private修饰符修饰后的成员。
类的继承并不改变类成员的访问权限。
语法:
- public class 子类 extends 父类{
- }
多层继承:
在多层继承最下层的子类用有父类的整个继承体系的成员,最上层的父类里面定义所有子类的共性描述。
多继承问题?
JAVA中不支持多继承,只支持单继承。因为多继承存在安全隐患,当多个父类定义了相同的成员,子类对象不确定运行哪个。
JAVA保留这种机制,并用了另一种方式——多实现。
super关键字:
对象在方法中对父类对象的引用
子父类构造函数
- super.属性;
- super.方法();
super调用父类的属性和方法主要用于区分同名成员
语法:
- susper();//调用父类
注意:
super必须编写在构造方法中的第一行
特点:
在对子类对象进行初始化的时候,父类的构造方法也会运行,那是因为子类的构造函数默认第一行(有一条隐式的语句)super();
子类每个构造方法第一行都有一个隐式的super()。
Object类tostring
概述:一个特殊的类。
Object:它是JAVA中所有对象的直接或间接的父类,根父类(基类),它里面定义的功能时所有对象都应该具备。
注意:
当定义一个类时,没有指明要继承某类时,它默认继承Obejct类。
Object类equals()
==和Object里面的equals其实比较的就是两个对象的内存地址是否一致。
Day03:数组 、 继承的意义(上)的更多相关文章
- Unit03 - 对象内存管理 、 继承的意义(上)
Unit03 - 对象内存管理 . 继承的意义(上) 1.内存管理:由JVM来管理的 1)堆: 1.1)存储所有new出来的对象(包含成员变量) 1.2)没有任何引用所指向的对象就是垃圾 ...
- Unit04 - 继承的意义(下) 、 访问控制 、 static和final
Unit04 - 继承的意义(下) . 访问控制 . static和final 1.方法的重写(Override):重新写.覆盖 1)发生在父子类中,方法名称相同,参数列表相同,方法体不同 2 ...
- C# webbrowser实现真正意义上的F5刷新
关于webbrowser的刷新在C#中有提供方便的方法: webbrowser.refresh(); 但是有时候会发现,不给力啊 那怎么办? 还有一招: webBrowser1.Document.Ex ...
- 真正意义上的spring环境中的单元测试方案spring-test与mokito完美结合
真正意义上的spring环境中的单元测试方案spring-test与mokito完美结合 博客分类: java 测试 单元测试SpringCC++C# 一.要解决的问题: spring环境中 ...
- 初次真正意义上的接触Eclipse
以前就玩安卓app 用过很多软件比如e4a,iapp,aide,lua,但是这都不是真正意义上的安卓编程软件.大二的时候用过Androidstudio,那个软件配置起来太难了,就搁置了. 这次利用机智 ...
- maven工程聚合和继承的意义
聚合的意义: 对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否则就会出现一个类好多人开发,相互更改的混乱局面,这个时候我们就将项目进行了横向和纵向的 ...
- ISO C++标准委员会不是一个一般意义上权力机构,基本上愿意交会费,愿意自己出时间,出酒店机票,出提案,就可以申请加入。
ISO C++标准委员会不是一个一般意义上权力机构,基本上愿意交会费,愿意自己出时间,出酒店机票,出提案,每年全世界参加会议被专家巨细靡遗地评头论足,就可以申请加入. 所以参加标准委员会背景各异,有人 ...
- js数组方法大全(上)
# js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...
- flask如何返回真正意义上的json字符串?以及中文如何正常显示?
flask中,不能直接return字典,需要把字典转换为json字符串方式有三种:1. return str(字典)2.return json.dumps(字典)3.return jsonify(字典 ...
- @interface __ annotation 子类可以继承到父类上的注解吗--有结论了
博客分类: Java/J2se 作者:赵磊 博客:http://elf8848.iteye.com 不了解注解基础知识的请先看<JDK 5 Annotation\注解\注释\自定义注解> ...
随机推荐
- IANA
IANA,全称The Internet Assigned Numbers Authority,即互联网数字分配机构1. Internet已成为全球范围的网络.为保证其正常运作,全球有很多机构参与进来. ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(14)|Impls & Traits实现与特征]
[易学易懂系列|rustlang语言|零基础|快速入门|(14)] 有意思的基础知识 Impls & Traits实现与特征 我之前说到的struct结构体,其实就类似于面向对象语言中的类cl ...
- python file对象测试数据的读写操作及OS模块介绍(四)
import from....import 引入模块 引入类 ①import 如果文件在lib下而且是python模块 :import 模块名. ②from....import from 包名.包 ...
- JavaScript原型初学者指南
视频Videohttps://www.youtube.com/watch... 前言 如果不好好的学习对象,你就无法在JavaScript中获得很大的成就.它们几乎是JavaScript编程语言的每个 ...
- Spring MVC 设置UTF-8编码
按照需求选其中之一即可吧. 修改读取参数时候的编码: 在web.xml中: 添加一个过滤器(filter),注册 org.springframework.web.filter.CharacterEnc ...
- Python网络数据采集(1):博客访问量统计
前言 Python中能够爬虫的包还有很多,但requests号称是“让HTTP服务人类”...口气不小,但的确也很好用. 本文是博客里爬虫的第一篇,实现一个很简单的功能:获取自己博客主页里的访问量. ...
- day_work_01
day_work_01 ------Python是一个优雅的大姐姐 作业一:http://www.cnblogs.com/xzmxddx/p/8331568.html 作业二:编写登录接口 代码 # ...
- LA 2797
题目链接 题意:训练指南283页: #include <iostream> #include <cstdio> #include <cstring> #includ ...
- sh_09_字典的定义
sh_09_字典的定义 # 字典是一个无序的数据集合,使用print函数输出字典时,通常 # 输出的顺序和定义的顺序是不一致的! xiaoming = {"name": " ...
- [LOJ3119][CTS2019|CTSC2019]随机立方体:组合数学+二项式反演
分析 感觉这道题的计数方法好厉害.. 一个直观的思路是,把题目转化为求至少有\(k\)个极大的数的概率. 考虑这样一个事实,如果钦定\((1,1,1),(2,2,2),...,(k,k,k)\)是那\ ...