博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[总结] 继承
阅读量:5134 次
发布时间:2019-06-13

本文共 1838 字,大约阅读时间需要 6 分钟。

  继承

在面向对象中,可以通过扩展一个已有类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(子类指向父类)
语法:public class 子类 extends 父类{
如何判断类具有继承关系:
    1. has - a (组合)
     2.is - a (继承).
使用extends 关键字实现继承关系
Eployee 父类(又叫基类)
Hourly 子类 (又叫派生类)
基类可以有多个子类。可又叫超类。列:Object;
继承的优点
    1.代码的可重用性
    2.父类的属性和方法用于类
    3.子类可以扩展父类的属性和方法
    4.设计应用程序时变得更加简单
*扩展*
*Java中一个类只能有一个类,在某些OOp语言如C++中允许子类有多个父类*
*Object是所有类的超类,后面是共有的9个最常用的属性。需全部记住。*
*不是引用类型都不能用“= =”,而是应用类型所指向的“引用”业务相比较,“= =”判定两个引用是否指向同一个对象,equal.()是判定两个对象在业务上相等*
方法重写
子类将父类继承的方法再实现一次,叫做方法的重写,当我们打印对象或对对象进行字符串的操作就在调用toString来于Object的toString返回的全类名+十六进制数
当然我们可以根据自己的需要重写toString
方法重写规则---从父类继承而来的方法,子类重新实现(重载不要返回类型,只要求方法名一致)
    1.方法名必须保持一致
    2.参数列表必须保持一致
    3.返回类型必须保持一致
    4.访问修饰符必须大于等于父类
    5.子类重写后的方法不能抛出比父类重写前的方法更多的异常
    6.构造方法不能被继承,也没有重写,可以重载
this. 和 super.,this()和super()的区别:
this.指代当前对象能操作定义在本类上的属性方法
     能操作定义当前对象的父类上的被访问修饰符允许访问的属性方法
super.指代当前对象的父类部分
      不能操作定义在本类的属性和行为。
      能访问定义在父类上的被允许访问的属性和方法
      只有当本类中调用被重写方法之前的效果时使用super.其他时候都使用this。
this()指调用本类的其他构造,只能写在构造中,且必须是第一行
super()值调用父类指定的构造方法,只能写构造中且只能写在构造方法中第一句
         super()如果不写会默认调用父类的无参构造

// 面试题:调用一个无参构造方法,让子类和父类的都执行一遍

public Class Father(){    public Father(){    this(1); System.out.pritln("在父类的构造函数中 1"); } public Father(int a ){ this (0,a) System.out.pritln("在父类的构造函数中 2"); } public Father(int a ,int b){ System.out.pritln("在父类的构造函数中 3"); } }
public Class Son(){    public Son(){    this(1); System.out.pritln("在子类的构造函数中 1"); } public Son(int a ){ this(1,a); System.out.pritln("在子类的构造函数中 2"); } public Son(){ System.out.pritln("在子类的构造函数中 1"); } }
public Class Test(){    public void main (String [] args){    Son s = new Son(); }

 

final 关键字
当我们用final 来修饰一个类时,该类不能被继承 (叫做最终态/终态类)
方法被final修饰该方法也不能被继承,(修饰构造方法无意义,构造方法不能被继承)
final使用的几种情况
finalize()是一个方法名不是关键字,是Object的方法,用来销毁对象方法,由GC回收调用
toString()返回一个对象的字符串的描述,使用机制为:
    public String toString(){
    return this.name +"住在"+this.address;
    }

转载于:https://www.cnblogs.com/jrc2016/p/6142475.html

你可能感兴趣的文章
win7-64bit安装comtypes的问题
查看>>
mysql有哪几种索引
查看>>
字符、字符串和文本的处理之String类型
查看>>
数据结构-环形队列 C和C++的实现
查看>>
如何实现SSH断开后 进程仍然在后台运行
查看>>
3款强大的BootStrap的可视化制作工具推荐
查看>>
Sql Server临时表获取链接数据库查询结果
查看>>
对象流--对象的序列化
查看>>
NXP S32K RTC模块手册中文
查看>>
POJ 1329 三角外接圆
查看>>
7个最好的免费杀毒软件下载
查看>>
PHP图像处理:3D图纸、缩放、回转、剪下、水印(三)
查看>>
C++ 中dynamic_cast<>的用法
查看>>
让你提前认识软件开发(28):数据库存储过程中的重要表信息的保存及相关建议...
查看>>
ArcGIS API For JS 之Symbol
查看>>
Java——Set 集合
查看>>
Your Progress As A Programmer Is All Up To You
查看>>
Laravel 调试利器 Laravel Debugbar 扩展包安装及使用教程
查看>>
成功在MP4封装的H264视频中提取能播放的裸流
查看>>
python tkinter-单选、多选
查看>>