Math、代码块、继承

Mathjava

public static double random() {
    return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
} // 取值范围[0,1)

若要取值[1,10]: (int)(Math.random() * 10 )+ 1面试

代码块

        使用{}括起来的代码,可分为 局部代码块,构造代码块,静态代码块,同步代码块dom

        局部代码块: 在方法中;限定变量生命周期,及早释放,提升内存利用率spa

        构造代码块: 在类中方法外;多个构造方法中相同的代码存放到一块儿,每次调用构造都执行,而且在构造方法前执行对象

        静态代码块: 在类中方法外,加static修饰;给类进行初始化,在加载的时候就执行,而且只执行一次blog

面试题? 静态代码块 构造代码块 构造方法的执行顺序?继承

                 静态代码块>构造代码块>构造方法接口

 

继承

    继承是类与类之间的关系,让子类自动具有定义在父类中的属性和行为,从而达到代码复用的目的 生命周期

 格式: 经过extends关键字能够实现类与类的继承,class 子类名 extends 父类名内存

    extends: 单继承有且只有一个父类; 不写extends,也会有一个默认的父类(Object, java中的根类)

        这个类被称为父类,基类或者超类;这多个类能够称为子类或者派生类

类与类的关系:  is a 继承; has a 组合

继承的内存实现:  首先调用父类的构造方法,而后再调用子类的构造方法,构成一个完整的对象

    特色: 1 来自父类的属性和行为,都会无条件的继承,可是,可否访问到,是看父类中定义的修饰符

                2 父类的构造方法不会被子类继承

                缘由: 2.1 语法上,构造方法要求与类名保持一致,因此一个子类不可能有一个构造方法的名字是父类的类名

                        2.2 逻辑上,构造方法是用来产生对象的,子类不可能拥有产生父类对象的方法

            3 只能单继承,可是支持多层继承

继承的优势: 结构清晰;缺点: 子类的丰富度不够,灵活性不够,因此Java中能够使用接口类,进行弥补

    

    

继承中成员方法的关系

    子类拥有父类相同的行为,被称为方法覆盖,方法重写

        特色: 1 方法名不能变 2 参数列表相同 3 返回类型相同 4 访问修饰符不能比父类的低

        5 重写后的方法不能抛出比重写前更多的异常

相关文章
相关标签/搜索