继承

面向对象编程三(四)大特征

(抽象),封装,继承,多态
什么是继承?
继承是面向对象编程中一种代码复用的方式
为什么需要继承?
减少代码冗余,提高程序的可维护性和可扩展性
怎样使用继承?
语法:

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:数组 、 继承的意义(上)的更多相关文章

  1. Unit03 - 对象内存管理 、 继承的意义(上)

    Unit03 - 对象内存管理 . 继承的意义(上) 1.内存管理:由JVM来管理的  1)堆:    1.1)存储所有new出来的对象(包含成员变量)    1.2)没有任何引用所指向的对象就是垃圾 ...

  2. Unit04 - 继承的意义(下) 、 访问控制 、 static和final

    Unit04  -  继承的意义(下) . 访问控制 . static和final 1.方法的重写(Override):重新写.覆盖  1)发生在父子类中,方法名称相同,参数列表相同,方法体不同  2 ...

  3. C# webbrowser实现真正意义上的F5刷新

    关于webbrowser的刷新在C#中有提供方便的方法: webbrowser.refresh(); 但是有时候会发现,不给力啊 那怎么办? 还有一招: webBrowser1.Document.Ex ...

  4. 真正意义上的spring环境中的单元测试方案spring-test与mokito完美结合

    真正意义上的spring环境中的单元测试方案spring-test与mokito完美结合 博客分类: java 测试 单元测试SpringCC++C#  一.要解决的问题:     spring环境中 ...

  5. 初次真正意义上的接触Eclipse

    以前就玩安卓app 用过很多软件比如e4a,iapp,aide,lua,但是这都不是真正意义上的安卓编程软件.大二的时候用过Androidstudio,那个软件配置起来太难了,就搁置了. 这次利用机智 ...

  6. maven工程聚合和继承的意义

    聚合的意义: 对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否则就会出现一个类好多人开发,相互更改的混乱局面,这个时候我们就将项目进行了横向和纵向的 ...

  7. ISO C++标准委员会不是一个一般意义上权力机构,基本上愿意交会费,愿意自己出时间,出酒店机票,出提案,就可以申请加入。

    ISO C++标准委员会不是一个一般意义上权力机构,基本上愿意交会费,愿意自己出时间,出酒店机票,出提案,每年全世界参加会议被专家巨细靡遗地评头论足,就可以申请加入. 所以参加标准委员会背景各异,有人 ...

  8. js数组方法大全(上)

    # js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...

  9. flask如何返回真正意义上的json字符串?以及中文如何正常显示?

    flask中,不能直接return字典,需要把字典转换为json字符串方式有三种:1. return str(字典)2.return json.dumps(字典)3.return jsonify(字典 ...

  10. @interface __ annotation 子类可以继承到父类上的注解吗--有结论了

    博客分类: Java/J2se   作者:赵磊 博客:http://elf8848.iteye.com 不了解注解基础知识的请先看<JDK 5 Annotation\注解\注释\自定义注解> ...

随机推荐

  1. mysql绿色版的应用

    一.首先下载mysql 1.进入 https://www.oracle.com/index.html 网址 2.拉倒页面的最下面 3. 4.把下好的压缩文件解压出来 二.在DOS命令里面配置 1.先进 ...

  2. react -搭建服务-2

    export const DEFAULT_TITLE = "你好"; // export const PRODUCT_SERVER_URL = "http://10.10 ...

  3. QT:设置布局边缘

    QHBoxLayout * horizontalLayout = new QHBoxLayout; //setContentsMargins(int left, int top, int right, ...

  4. CSS3的2D 转换——旋转,缩放,translate(),skew(),matrix()

    2D转换方法:在平面对元素进行旋转,缩放,移动,拉伸. ㈠浏览器支持 ⑴2D转换效果有以下的浏览器支持:   ⑵在编辑代码的时候要注明用哪种浏览器打开,在前面加上前缀,下面是编辑器的简写形式,以及前缀 ...

  5. jquery which事件 语法

    jquery which事件 语法 作用:which 属性指示按了哪个键或按钮.大理石平台精度等级 语法:event.whic 参数: 参数 描述 event     必需.规定要检查的事件.这个 e ...

  6. C# AVI Image 转换

    AVI视频库 http://download.csdn.net/download/qc_id_01/9970151 Avi视频文件的编码有很多,这个库只支持部分Avi文件,有些Avi文件不支持,具体哪 ...

  7. Python天天学_03_基础三

    Python_day_03 金角大王: http://www.cnblogs.com/alex3714/articles/5740985.html ------Python是一个优雅的大姐姐 学习方式 ...

  8. Andorid获取状态栏高度

    在应用开发中,有时我们需要用代码计算布局的高度,可能需要减去状态栏(status bar)的高度.状态栏高度定义在Android系统尺寸资源中status_bar_height,但这并不是公开可直接使 ...

  9. Codeforces 343D Water Tree & 树链剖分教程

    原题链接 题目大意 给定一棵根为1,初始时所有节点值为0的树,进行以下三个操作: 将以某点为根的子树节点值都变为1 将某个节点及其祖先的值都变为0 *询问某个节点的值 解题思路 这是一道裸的树链剖分题 ...

  10. POJ 1430 Binary Stirling Numbers (第二类斯特林数、组合计数)

    题目链接 http://poj.org/problem?id=1430 题解 qaq写了道水题-- 在模\(2\)意义下重写一下第二类Stirling数的递推式: \[S(n,m)=S(n-1,m-1 ...