代码块
代码块是在类下面由{}框起来的代码称之为代码块,根据位置及声明关键字的不同,代码地代分为普通代码块、构造块.静态代码块、同步代码块4种。
普通代码块就是直接在方法或者语句中定义的代码块。
直接在类中定义且没有加static关键字的代码块称为构造块,构造块在创建对象时被调用,没吃创建对象都会被调用,并且构造代码块的执行次序优于类构造函数。
在java中使用static关键字生命的代码块。静态代码快用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块优先主方法执行。如果类中包含多个静态代码块,那么将按照先定义的代码先执行,后定义的代码后执行。
关于静态代码块需要注意的是:
1.静态代码块不能存在于任何方法体内。
2.静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
同步代码块指在代码块前加上 synchronized关键字的代码块。
抽象类
抽象类需要在普通类的class前加上abstract代码使类型变为抽象类,抽象类内只能有方法名,不能有方法实现。抽象类需要有个子类进行继承,抽象类的所有方法,继承了他的子类必须都要实现他的方法,除非子类也是抽象类。
需要注意的是
1.不能new这个抽象类,只能在子类中去实现他。
2.抽象类里面可以写普通方法,但抽象方法必须写在抽象类中。
3.虽然抽象类不能new对象,但是抽象类里面是存在构造器的。
4.单继承。
抽象类存在的意义:能抽出所有的公共数据,提高开发效率。
接口
接口需要将普通类中的class换成interface,这样就成为了一个接口。接口可以多继承。接口都需要有实现类。
接口中所有定义的方法其实都是抽象的,在代码前面隐藏了public abstract。
类可以实现接口,需要在类名后面加上implements 加上接口名。这样类就可以实现接口。需要在类中重写接口中的方法,利用接口可以实现多继承。
接口实质上就是定义一些方法,让不同的类进行实现。
接口中的默认方法是public abstract。
接口中的常量默认是public static final。
接口不能实例化,因为接口中没有构造方法。
implements中可以实现多个接口。
必须要重写接口中的方法。