抽象类,final,静态变量和静态代码块
1.抽象类的作用就类似动物和具体动物之间的关系,抽象类不能直接实例化对象,但是可以通过继承来实例化子类对象,同时含有抽象方法的类为抽象类。抽象方法可以不被具体的写好,但是在子类的重写过程中需要重写,关键字为override。
2.静态变量不属于某一个类,而是属于每一个类,可以用类名+变量名字进行修改。
3.静态方法可以访问静态方法,但是不能访问非静态属性,例如本类的this指针。
4.静态代码块只能运行一次,其语法为static{…内容…};
5.final变量不能被继承,要是一个变量为final类型,需要先对他实例化。
接口和抽象类的区别和相同
1.接口中的属性只能是public static final类型的 ; 抽象类中的属性没有要求。(可以public可以protect等,可以普通成员变量,可以静态变量,可以静态常量等)
2 . 接口中的所有方法必须都是public abstract 类型的 ; 抽象类中可以有抽象的方法也可以有非抽象的方法,其中抽象的方法没有方法体。抽象类中的抽象方法的访问权限可以是 public、protected 等。
3 . 接口中不能有静态代码块、静态方法、构造代码块、构造方法;【但JDK1.8 及之后,接口可以有静态方法】 抽象类中可以有静态代码块、静态方法、构造代码块、构造方法;
4 . 接口不可以实现接口,但可以继承接口,并且可以继承多个接口,用逗号隔开; 一个类可以实现多个接口,用逗号隔开,但只能继承一个抽象类。