代码块:普通代码块、构造块、静态块
·其中只有静态块比较特殊,因为他先于主方法执行。
内部类:
·有点:可以方便的访问外部类中的私有操作;缺点是破坏了程序的结构;使用static声明的内部
类就是外部类;内部类可以在方法中声明,但是如果要访问方法中的参数,则参数前必须加上final
关键字;
final声明的类不能有子类,使用final声明的类就表示断子绝孙了;声明的方法不能被子类复写;
声明的变量就是常量。在java中声明常量是,标示符一定大写;在final中也存在一个很重要的概念
:使用public static final声明的常量是全局常量。
方法复写或者重组中,返回值类型必须一致,只有参数类型或者个数可以改变,这一点十分重要;
在使用子类实例化对象调用类中被覆写过的方法时,调用的永远是被覆写过的操作;在方法覆写中
应该注意访问权限的问题,子类覆写的方法的访问权限不能比父类的小,访问权限由小到大
private<default<public,如果父类方法用private声明权限,则子类的方法不是覆写,而是重写定
义;如果希望调用父类中被子类覆写过的方法,则只能通过super.方法()的形式调用。
对于抽象类来讲,不能直接进行实例化操作,但是可以声明,如果要想使用抽象类,则必须依靠子
类,抽象类不需被子类继承,而且子类需要实现抽象类中的全部方法。抽象类不能用final声明,
final声明的类没有子类,但是抽象类声明的类必须有子类。抽象类中可以有构造方法,但是此构造
方法不能直接调用,只能有子类调用,子类的实例化过程,永远是先调用父类构造方法。实际上来
讲,抽象类就是普通类多了一个抽象的方法而已。抽象类中的属性如果想要初始化的话,则可定依
赖该抽象类的构造方法,但是也可以通过一系列的setter和getter方法进行初始化,但是这样比较
麻烦,需要通过子类对父类的setter方法进行调用进而赋值。*抽象类中的方法必须被子类全部复写
。
接口是一个特殊的类,java中接口是有抽象方法和全局常量组成。接口与抽象类一样也有子类,那
么接口的子类不是继承类,而叫做实现接口,通过implements关键字完成。接口中的方法同样需要
实现的子类全部复写,接口中方法或者属性的作用域默认为public abstract的,允许声明是不加。
接口类的末尾可以不加“;”如果一个类既要实现继承又要实现接口的话,则不需按照以下格式进行
书写:
class 子类 extends 抽象类 implements 接口A,接口B...{}。一个抽象类可以继承多个接口但是
一个一个接口不能继承一个抽象类,但是一个借口也可以继承多个接口。
多态性是面向对象的最后一个特征:
·方法重载和方法重写实际上就属于多态性的一种体现;
·真正的多态性还包含一种称为对象多态性的概念.
对象多态性主要指的是,子类和父类对象的互相转换关系;
向上转型:父类 父类对像=子类实例----自动完成;
向下转型:子类 子类对象=(子类)父类实例-----强者完成;多态调用灵活,增加了java的灵活性
,程序更加有效。