个人博客网:https://wushaopei.github.io/    (你想要这里多有)

1、继承性

1.1 为什么要类的继承性?(继承性的好处)

①减少了代码的冗余,提高了代码的复用性;
②更好的扩展性
③为多态性的使用提供了前提

1.2 继承的格式:A extends B

  • A类叫做子类 (subClass)
  • B类叫做父类 (superClass,超类,基类)

1.3 子类继承父类以后哪些不同?

子类继承父类以后,就拥了父类中的属性和方法(不认为父类中的构造器可以被继承。但是子类可以用super访问弗雷的构造方法。子类除了可以拥父类中的属性和方法,还可以自定义属性和方法。

1.4  java中继承性的说明

1.子类继承父类以后,就拥了父类中的属性和方法(不认为父类中的构造器可以被继承。子类除了可以拥父类中的属性和方法,还可以自定义属性和方法。
2.java中的类只支持单继承(一个类只能有一个父类。一个父类可以有多个子类)。
3.子类继承父类以后,无法直接访问父类中被私化的属性(我们认为继承了被私化的属性。但是我们可以间接的通过get/set方法对属性进行调用。
4.父类是一个相对的概念,父类分为直接父类和间接父类。
子类继承父类以后,除了拥父类中的属性和方法外,还继承了间接父类中的属性和方法。

2、方法的重写

2.1什么是方法的重写 :

定义 :子类继承父类以后,子类可以对父类中的方法进行重写(覆盖,覆写)

2.2方法重写后的调用 :

子类重写父类的方法后。通过子类对象进行调用方法,实际上调用的是子类中重写的父类中的方法。

2.3 说明

权限修饰符  返回值类型  方法名(形参列表){
方法体;
}

子类重写的方法      父类被重写的方法

1.子类重写的方法和父类被重写的方法的方法名和形参列表必须一样。
2.子类重写的方法的权限修饰符不小于父类被重写方法的权限修饰符。
3.子类重写的方法的返回值类型不大于父类被重写方法的返回值类型(父类被重写方法的返回值类型和子类重写方法的返回值类型必须子父类关系才能。
注意 :
    ①父类被重写方法的返回值类型如果是void 子类重写方法返回值类型也只能是void
    ②父类被重写方法的返回值类型 double 子类重写方法返回值类型int (不可以的,只能是相同的)
4.子类方法抛出的异常不能大于父类被重写方法的异常(后面再说

2.5 注意

  1. 如果父类中的方法的权限修饰符是private,那么我们不认为这个方法可以被子类重写。
  2. 子父类中同名的方法(非重写)须同时为static的,或同时为非static的

3、关键字super

super用来调用父类中的结构,包括属性,方法,构造器 。
super可以调用:属性,方法,构造器
super调用属性和方法:
父类被子类继承以后,可以在子类的构造器和方法中。通过使用"super."来调用父类中的属性和方法。一般我们都会省略掉"super."
如果子类中的属性名和父类中的属性名一样,那么调用父类中的属性就不能省略"super."。如果子类重写了父类中的方法,如果需要调用父类中被重写的方法也不能省略"super."。
super调用构造器:
格式 :super(形参列表)
说明 :

  1. super(形参列表)只能放在子类构造器的首行
  2. 在子类同一个构造器中只能有一个super(形参列表)
  3. 在子类同一个构造器中super(形参列表)和this(列参列表)只能使用其中的一个
  4. 在子类的构造器中如果没显示的调用super(形参列表)和this(列参列表) 那么默认调用的是 super() - 父类的空参构造器

4、子类对象实例化过程(理解)

过程上:
通过子类的构造器,一定可以调用到直接父类和间接父类....Object类中的构造器。进而将这些类的信息通过JVM加载到内存中。所以可以进行调用父类中的属性和方法。

结果上:
子类继承了父类以后。那么子类就拥了父类中的属性和方法。通过子类的对象就可以调用父类中的属性和方法。

注意:自始之终我们只认为创建了子类一个对象

JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、的更多相关文章

  1. Java面向对象之继承,方法重写,super关键字,员工类系列继承题

    在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...

  2. java方法重写和super关键字

    //java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...

  3. Java方法重写与super关键字

    ----------siwuxie095                     方法的重写:     (1)在继承中也存在着重写的概念,其实就是子类定义了和父类同名的方法     (2)定义:方法名 ...

  4. 04 Python的继承、方法重写、super()类、父类私密属性的调用

    继承 A类继承B类,A即可获得B类的全部公共属性和方法(包括内置属性和方法).格式如:class A(B): class Animal: def sleep(self): print("zZ ...

  5. 乐字节Java继承|方法重写、super和final关键字

    大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...

  6. 面向对象编程(九)——面向对象三大特性之继承以及重写、Object类的介绍

    面向对象三大特性 面向对象三大特征:继承 :封装/隐藏 :多态(为了适应需求的多种变化,使代码变得更加通用!) 封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 继承:很好的实现 ...

  7. c#基础学习(0702)之面向对象和方法重写概述

    面向对象编程(OOP==>Object-Oriented Programming) OOA:面向对象分析 OOD:面向对象设计 OOAD:面向对象分析与设计 什么是面向对象?一种分析问题的方式( ...

  8. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  9. 《java入门第一季》之面向对象(方法重写问题)

    方法重载的引入:根据一个案例: /* 继承中成员方法的关系: A:子类中的方法和父类中的方法声明不一样,这个太简单. B:子类中的方法和父类中的方法声明一样,这个该怎么玩呢? 通过子类对象调用方法: ...

随机推荐

  1. java读源码 之 queue源码分析(PriorityQueue,附图)

    今天要介绍的是基础容器类(为了与并发容器类区分开来而命名的名字)中的另一个成员--PriorityQueue,它的大名叫做优先级队列,想必即使没有用过也该有所耳闻吧,什么?没..没听过?emmm... ...

  2. react-redux的理解

    react-redux是辅助redux的,我们正常使用redux是很麻烦的,需要在每个组件中去监听数据变化,执行数据更新等 但是通过react-redux,我们可以简化组件使用公共数据的操作, rea ...

  3. 基于胜率矩阵的PageRank排序

      在做博弈模型评估的时候,遇到一个问题是如何评价多个模型的优劣.例如我有训练好的三个围棋模型A,B,C,两两之间对打之后有一个胜负关系,如何对这三个模型进行排序呢?通常对于人类选手这种水平有波动的情 ...

  4. STM32 标准库3.5修改默认外部8M晶振为16M晶振

    ST官方标准库V3.5默认的外部晶振频率为8M,实际使用中外部晶振需要修改为16M: 经过实验,修改有效,具体的patch如下: 修改 HSE_VALUE 值 diff --git "a/L ...

  5. 正则表达式在java中的用法

    /** * 测试正则表达式的基本用法 Pattern 和 Matcher * @author 小帆敲代码 * */public class Demo01 {  public static void m ...

  6. Java调用支付宝支付遇到的坑

    下单成功,回调不成功 原因:支付宝公钥填成商户公钥.这两个公钥是不一样的,但开头和结尾很多字符都一样,如果不用文本比对器比对很难发现!而且支付宝公钥填成商户公钥还能下单成功,只是回调不成功,这让原因更 ...

  7. 1005 Spell It Right (20分)

    1005 Spell It Right (20分) 题目: Given a non-negative integer N, your task is to compute the sum of all ...

  8. js日期格式与时间戳相互转换

    本文转自:https://blog.csdn.net/Lc_style/article/details/80626748 1.将日期格式转化为时间戳: var date = new Date('201 ...

  9. [原创][开源] SunnyUI.Net 开发日志:ListBox 增加跟随鼠标滑过高亮

    QQ群里,寸目说,ListBox鼠标移动时,当前行需要焦点,我想了想,不难实现啊 不就是在鼠标移动时重绘Item嘛,何况选中的Item已经改了颜色了. 见UIListBox代码: protected ...

  10. iframe中请求页面而session失效时页面跳转问题

    iframe中请求页面而session失效时页面跳转问题 分类: Web2009-12-11 15:01 656人阅读 评论(0) 收藏 举报 sessioniframejsp 有时候做了就忘了,我记 ...