zoukankan      html  css  js  c++  java
  • 【JAVA SE基础篇】25.面向对象三大特征之继承

    之前主要了解了面向对象的基本概念,接下来的部分属于面向对象的三大特征:继承、封装、多态

    1.继承(extends)

    继承让我们更加容易实现的扩展。子类继承父类,是父类的扩展,实现了代码的重用。

    假如我们写一个人类,有姓名和年龄的属性,有吃的功能,

    再写一个学生类,有姓名和年龄和学号的属性,有吃的功能,有学的功能

    例:

     此时代码很复杂,你会发现人类的属性和功能在学生类中都有,写起来比较麻烦,这时就可以用到继承

    将学生类中和人类中相同的属性和功能删掉,再写上继承的关键字以及被继承的类名

    例:

     此时学生类就拥有了人类的所有属性和方法。

    注:

    1.父类也成为超类,基类,派生类

    2.java中类只有单继承,没有c++中的多继承。java中一个儿子只有一个爹,一个爹可以有多个儿子。

    3.java中用多接口来实现多继承,接口可以多继承,类只能单继承

    4.子类可以得到父类的所有属性和方法(父类构造方法除外),但是不见得可以直接访问(例如:父类的私有属性和私有方法)

    5.如果定义一个类没有extends声明父类,那么默认父类为java.lang.Object。

    2.instanceof运算符

    instanceof是二元运算符,左边是对象,右边是类,当对象是右边类或其子类所创建的对象时,返回true,否则false

    例:

    3.方法的重写

    方法的重写表示子类重写父类的方法

    比如,父类有个a()方法,子类使用时候发现不符合自己的要求,就可以进行重写

    子类通过重写父类的方法,可以用自身的行为替换父类的行为。

    重写三个要点:

    1.方法名,形参列表相同

    2.返回值类型和声明异常类型相,子类小于等于父类

    3.访问权限,子类大于父类

    例:

     4.super关键字

    super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或者属性

     super的其他用法

    若构造方法的第一行代码没有显示的调用Super(...)或者this(...),那么java默认都会调用super(),含义是调用父类的无参构造函数,这里的super()可以省略

    构造方法的第一句总是super(),来调用父类对应的构造方法。

    所以构造方法调用流程是,先向上追溯到Object,再依次向下执行类的初始化块和构造方法,直到子类为止。

     例:

    注:构造方法与静态块执行顺序一致

  • 相关阅读:
    xcode开发笔记
    css样式笔记
    weex开发的笔记
    启动优化优秀文章和部分内容摘录
    备注Weex开发
    ARKit的使用示例
    数据结构:数据结构可分为几类?
    JAVAWEB应用模块(一)登录模块
    IDEA常用操作链接
    java中成员变量,局部变量,静态变量的辨析
  • 原文地址:https://www.cnblogs.com/chengkuan/p/13142050.html
Copyright © 2011-2022 走看看