一、继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。在生活中就相当于老虎,狮子等属于肉食动物,兔子,羊等属于食草动物,食草动物和食肉动 ...
分类:
编程语言 时间:
2020-03-04 22:31:56
阅读次数:
70
一、为什么要使用抽象类、抽象方法 当编写一个类时,常常会定义一些类用于描述该类的行为方式,那么这些方法都有具体的方法体。但在某些情况下,某个父类只知道其子类应该包含什么样的方法,但无法准确知道这些子类的如何实现这些方法。 例如:定义了一个Shape类,这个类应该提供一个计算周长的方法calPerim ...
分类:
其他好文 时间:
2020-03-04 21:10:04
阅读次数:
72
所在位置 方法名 参数列表 返回值 访问权限 方法重写 子类 相同 相同 相同或是其子类 不能小于父类 方法重载 同一个类 相同 不同 没有要求 没有要求 · ...
分类:
其他好文 时间:
2020-03-04 16:21:54
阅读次数:
89
getFields:获取所有公共的public修饰的方法,包括父类的方法 getDeclaredFields:获取所有本类声明的方法,包括private修饰的,但是不包含父类的方法。 类似的还有 getMethods 与 getDecalredMethods, getConstructors()和g ...
分类:
编程语言 时间:
2020-03-04 15:06:08
阅读次数:
74
装饰器(Decorator)是一种与类(class)相关的语法,用来注释或修改类和类方法。许多面向对象的语言都有这项功能,装饰器是一种函数,写成@ + 函数名。它可以放在类和类方法的定义前面。 @frozen class Foo { @configurable(false) @enumerable( ...
分类:
其他好文 时间:
2020-03-04 00:01:29
阅读次数:
88
一、类方法的强制重写与禁止重写 1、强制重写 需求:父类的一个方法,强制子类去重写 方式一: 把父类变成抽象基类,然后给指定的方法加上装饰器@abc.abstractmethod import abc class Animal(metaclass=abc.ABCMeta): @abc.abstrac ...
分类:
编程语言 时间:
2020-03-03 15:08:30
阅读次数:
77
一、类初始化过程 1. 一个类要创建实例需要先加载并初始化该类 main方法所在的类需要先加载和初始化 2. 一个子类要初始化需要先初始化父类 3. 一个类初始化就是执行()方法 ()方法由静态类变量显示赋值代码和静态代码块组成 类变量显示赋值代码和静态代码块代码从上到下顺序执行 ()方法只执行一次 ...
分类:
其他好文 时间:
2020-03-03 11:19:12
阅读次数:
78
package com.liubingfei.test; /** * @author LiuBingFei * @desc 测试java类中静态代码块,动态代码块,构造方法,普通方法执行顺序,继承父类时的执行顺序。 * 一、没有继承时候的执行顺序 * 1. 静态代码块 编译的时候执行 * 2. 动态 ...
分类:
编程语言 时间:
2020-03-02 22:44:08
阅读次数:
101
Java实例化顺序 1.初始化父类静态变量,如果没有赋值,默认初始化为null 2.调用父类 static{} 静态代码块 3.初始化子类静态变量 4.调用子类 static{} 静态代码块 5.初始化父类成员变量,如果没有赋值,默认初始化为null (此时this指针已经存在了) 6.调用父类 成 ...
分类:
编程语言 时间:
2020-03-02 14:46:26
阅读次数:
79
多态 多态存在的三个必要条件: 继承 , 重写 , 父类引用指向子类对象 , 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则error;如果有,调用子类的同名方法。 example: 输出结果为100 多态的缺陷 "重写私有方法" 期望输出的是public f(),但是父类中的p ...
分类:
编程语言 时间:
2020-03-01 22:08:34
阅读次数:
81