java是一种面向对象的语言。因此java具有所有面向对象语言所拥有的特点:继承,多态以及封装。
继承:java中的最小单元是类;继承指的是一个类可以获得另一个类的允许被获得的变量及方法;继承也是java提高代码复用性的一种重要途径。那么继承中什么变量或方法是可以被获得的,什么变量或方法是不可以被获得的?这就涉及到访问修饰符的概念,java中访问修饰符有:public,protected,default以及private。其中public对所有人都可见;protected对本包,本类及子类可见,对其他包不可见;default对本包,本类可见,对其他包及子类不可见;private对本类可见,对本包,子类及其他包都不可见。由此可见,被public和protected访问修饰符修饰的变量或方法可以被继承,而由default(缺省,即不写任何访问修饰符),private访问修饰符修饰的变量或方法不可被继承。继承中被继承的类叫做父类(或超类),继承父类的类叫做子类,子类可以获得父类所有的允许被继承的变量或方法,与此同时,子类亦可根据实际的需求自己定义属于子类自身的变量或方法,这样就实现了代码的复用性。需要注意的是,java中类之间的继承是单继承,即一个子类不能继承多个类,继承使用extends关键字。接口(interface)之间也可使用extends继承,但相比于类之间的单继承,接口之间的继承可以多继承,即extends 接口一[,接口二,接口三......];该语法中只需要使用一次extends即可,后面可以写多个接口,接口与接口之间用逗号隔开;除继承之外,java中还有一种继承被称作 实现 ,实现一般存在于一个类实现(继承)一个接口,使用implements关键字,一般的类实现接口必须重写接口中的所有方法,而抽象类则不需要,抽象类使用abstract关键字定义,抽象类中可以存放抽象方法,也可以不放抽象方法(如普通类那样定义普通变量及方法),抽象类不可以被实例化,但可以通过继承来得到抽象类中所有的变量及方法。
多态:多态指的是在存在继承关系的前提下,父类实例化时可以以其子类的类型来进行实例化。可以与方法重写搭配起来对代码复用达到最大化。
封装:封装是将一些数据封装起来的操作,由于java的最小单位是类,一般使用类来封装一些数据(如变量及方法等),使用访问修饰符来进行控制,可通过getter、setter方法来对封装起来的数据进行操作。