博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章继承
阅读量:4553 次
发布时间:2019-06-08

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

语法

修饰符 子类 extends 父类{

         //类定义部分

}

继承是面向对象的三大特特之一,Java只支持单继承。继承表达 is a 的关系。

子类可以从父类继承到哪些财产?

  1. 继承public和protected修饰的属性和方法,无论两者是否位于同一个包当找中.
  2. 继承默认权限修饰符的属性和方法,必须同包
  3. 无法继承private修饰的属性和方法.
  4. 无法继承父类的构造函数.

在Java中访问修饰符的访问权限

访问修饰符

本地

同包

子类

其他

Private

 

 

 

 

默认

   

 

 

Protected

     

 

Public

       

重写和继承关系中的构造函数

子类重写父类方法

定义

         如果从父类继承的方法不能满足子类的需求,则在子类中可以对父类的同名方法进行重   写 (覆盖),以符合要求,称为重写

方法重写的要求

  1. 重写方法和被重写方法必须具有相同的方法名
  2. 重写方法和被重写方法必须具有相同的参数列表
  3. 重写方法和被重写方法必须返回值类型必须相同,或者是其子类
  4. 重写方法不能缩小被重写方法的访问权限
    1. Super代表对当前对象的直接父类对象的默认引用
    2. Super必须出现再子类(子类的方法或构造函数)中,而不是其他位置
    3. 可以访问父类成员(可被继承的)
    4. 访问父类构造函数必须在子类构造函数的第一条语句
    5. 子类没有通过super显示调用父类的有参构造函数,也没有通过this显示调用自身的其他构造函数,则系统默认先调用父类的无参构造函数。
    6. 子类构造方法中没有使用super显示调用父类的有参构造函数,则执行父类相应的构造方法,不执行父类的无参构造方法
    7. 子类的构造方法中通过this显示调用自身的构造函数,则在相应的构造方法中应用以上两条规则
    8. 存在多级继承关系,在创建子类对象时,以上规则会多次向更高一次父类应用。一直到执行顶级父类object类的无参构造函数为止
    9. 通过abstract关键字修饰
    10. 抽象类不能被实例化。抽象类可以没有、有一个、多个或者全部都是抽象方法
    11. 抽象方法没有方法体,只有方法声明。抽象方法必须被子类继承,否则该子类也为抽象类
    12. 用fianl修饰类,该类不能被继承
    13. 用fianl修饰方法,该方法不能被重写
    14. 用fianl修饰变量(成员或者局部变量)都称为常量,只能赋值一次

Super关键字

继承条件下构造方法被调用的规则

抽象类

抽象类和抽象方法

抽象类和抽象方法的特点

Fianl修饰符

例:

Final Dog dog = new Dog(“偶偶”);

dog.name = “美美”;

dog = new Dog(“丫丫”);

错误点:

dog = new Dog(“丫丫”);    -------被final修饰的对象不能重新赋值,等于修改了引用的内存地址.

转载于:https://www.cnblogs.com/invincibleDeng/p/7601106.html

你可能感兴趣的文章
字节对齐
查看>>
使用Python SocketServer快速实现多线程网络服务器
查看>>
离散数学
查看>>
外观模式理解和示例
查看>>
IDEA远程仓库版本回滚
查看>>
C++矩阵库 Eigen 简介(转载)
查看>>
sklearn的train_test_split()各函数参数含义解释(非常全)
查看>>
机器学习算法的整体流程(非常易懂)
查看>>
机器学习梯度下降法的数学原理(非常易懂)
查看>>
数据归一化Scaler-机器学习算法
查看>>
机器学习线性回归算法的评价指标(简单线性回归问题)
查看>>
教你如何剖析源码(转)
查看>>
proxy和proxy-no的策略取值区别
查看>>
Silverlight代码编写对控件的PlaneProjection.RotationY属性控制动画
查看>>
AFNetworking
查看>>
unity3d Start执行不同时问题
查看>>
session
查看>>
JS只能输入数字
查看>>
Laravel 数据库连接, 数据库名,配置文件修改
查看>>
屌丝接盘侠们,孩子可能不是你们亲生的!
查看>>