Java——代码块,继承,final关键字

代码块

代码块:被一对{}所包含的代码被称为代码块;
代码块分为局部代码块、静态代码块、构造代码块、同步代码块;优先级为:静态代码块>构造代码块>构造方法;
局部代码块:在方法中出现;限定了成员变量的生命周期
静态代码块:被static所修饰在类中方法之外出现;注意:静态代码块只在加载时执行最先执行且执行仅为一次;
构造代码块:在类中构造方法外出现,将构造方法中相同的代码块存放在一起;优先级高于构造方法

    static {
        System.out.println("静态代码块1");
    }
    {
        System.out.println("构造代码块");
    }
    public Demo(){
        System.out.println("构造方法");
    }
}
public class Test {
    static {
        System.out.println("静态代码块2");
    }

    public static void main(String[] args) {
        System.out.println("main方法");
        Demo d1 = new Demo();
        Demo d2 = new Demo();
    }
}
静态代码块2
main方法
静态代码块1
构造代码块
构造方法
构造代码块
构造方法

继承

继承(extends):由于多个类中具有相同属性或者功能的方法,将这些具有相同属性或者功能的方法提取到一个类中,然后在使用这些方法是继承这个类;
继承的优点:提高了代码的复用性和维护性,让这些单独的类之间产生关系;
继承的特点:Java中只支持单继承和多层继承,不支持多层继承;
继承注意事项:子类只继承父类中所有非私有的成员方法或者成员变量;子类无法继承父类的构造方法,但是可以通过super去访问;
继承的使用场景:继承在我看来是一种集合的关系,但又不全是,子类有自己 的特殊属性时,要区别对待;
继承时成员变量的关系:子类与父类成员变量名称不相同时,按照名称引用;
子类与父类成员变量名称相同时,采用就近原则引用

this&super

this 对本类对象的引用
super 对父类对象的引用
使用方法:
调用成员变量
this.成员变量 调用用本类的成员变量
super.成员变量 调用父类的成员变量
调用构造方法
this(…) 调用本类的构造方法
super(…) 调用父类的构造方法
调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法

    int num=10;
}
public class Zi extends Fu {
    int num=100;
    public void show(int num){
         num=1000;
        System.out.println(num);
        System.out.println(this.num);
        System.out.println(super.num);
    }
}

public class Test {
    public static void main(String[] args) {
        Zi zi = new Zi();
        zi.show(1);
    }
}
1000
100
10

方法重写

子类中出现了和父类中一模一样的方法声明(方法名,参数列表,返回值类型),也被称为方法覆盖,方法复写;
注意事项:父类私有方法不能被重写;子类重写父类方法时,访问权限不能更低,静态必须通过静态重写;

final

final是最终的意思;
final修饰成员的特点:修饰变量:变量无法被重新赋值,相当于一个常量;修饰类:被final修饰了的类无法被继承;修饰成员方法:方法无法被重写;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chioaR/article/details/83065342