1、继承
继承就是从已有类派生一个新类的过程。
通过继承,新类自动包含原类中的方法和变量。然后,对类按照需要进行裁剪,为此程序员可以在派生出的类中添加新的变量和方法,或是修改继承下来的变量和方法。
继承的目的之一是复用已有的软件。
继承在父类和子类之间建立了is-a关系。
Java的继承机制为单重继承,即一个派生类只能有一个父类。当子类中定义的方法与父类中定义的方法有相同的名字和相同的签名时,我们收子类重写了父类中的方法。继承时经常用到重写。
2、多态
多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
Java中实现多态引用的两种不同的方法:继承和接口。
在设计一个方法时,通常希望该方法具备一定的通用性。例如要实现一个动物叫的方法,优于每种动物的叫声是不同的,因此可以在方法中接收一动物类型的参数,当传入猫类对象时发出猫的叫声,传入犬类对象时发出犬类的叫声。在同一个方法中,这种优于参数类型不同而导致只想效果各异的现象就是多态。在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。
3、静态变量
由static修饰,在JVM中,静态变量的加载顺序在对象之前,因此静态变量不依附于对象存在,可以在不实例化类的情况下直接使用静态变量。静态变量属于类,不属于类中任何一个对象,因此静态变量又叫做类变量,一个类不管创建多少个对象(对象是类的一个实例),静态变量在内存中有且仅有一个。
4、静态方法
方法用static关键字修饰,静态方法与静态成员变量一样,属于类本身,在类装载的时候被装载到内存,不自动进行销毁,会一直存在于内存中,直到JVM关闭。使用时也是不需要实例化类,能够直接使用。静态方法无法被重写。在静态方法中只能访问类中的静态成员跟静态方法,不能直接访问类中的实例变量跟实例方法,原因是静态方法在JVM中的加载顺序也在对象之前,直接使用实例变量跟实例方法的话,可能实例变量跟实例方法所依附的对象并没有被创建,会导致无法找到所使用的实例变量跟实例方法。