对象
在Java的世界里一切皆对象
- 对象 在Java一个类的实例对象。如果将对象对比成一个人类,那么年龄,性别,身高等就是对应着对象的状态。而其吃饭,睡觉,说话就对应着方法。在Java里面不需要销毁对象。
- 类 一切皆对象class 类就是描述对象的行为和状态。
- 方法 方法就是对应着对象的行为
关键字
- static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。静态方法表示独立于类,对于静态变量的调用必须是静态方法。
- final 表示最终的意思,这种类型的变量和方法其子类不能修改,并且final定义的变量必须显示的指定初始值。
- abstract 抽象类使用的该类不能被实例化,用于子类对该类的扩充修改,一个类不能同时被abstract和final修饰。
- Default 是指在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接口的语法限制),从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。
继承
继承子类会继承父类的行为和特征,使用继承可以提高代码的复用性。
注意:在Java使用中多用组合,少用继承。
继承的特性
- 子类拥有父类非 private 的属性、方法。
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法。
- Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
- 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
接口
接口并不是类,接口跟类一样都是描述对向的方法和属性。但是接口不能用来实例化,但可以进行定义。
接口与类的区别:
- 接口不能用于实例化对象。
- 接口没有构造方法。
- 接口中所有的方法必须是抽象方法。
- 接口不能包含成员变量,除了 static 和 final 变量。
- 接口不是被类继承了,而是要被类实现。
- 接口支持多继承。
接口特性 - 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定- 为 public abstract(只能是 public abstract,其他修饰符都会报错)。
- 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误)。
- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。