1.面向对象的特征有哪些方面
- 封装
让变量和访问这个变量的方法放在一起,将一个类中的成员变量全部定义成私有的,只有这个类自己的方法才可以访问到这些成员变量 - 抽象
声明方法的存在而不去实现它的类被叫做抽象类 - 继承
继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性 - 多态
多态就是指一个变量, 一个方法或者一个对象可以有不同的形式.
2.一个类是由哪些变量构成的
- Local variable 本地变量
- instance variables 实例变量
- class variables 类变量
Local variable
在方法体, 构造体内部定义的变量 在方法结束的时候就被摧毁
instance variables
在类里但是不在方法里 在类被载入的时候被实例化
class variables
在类里但在方法外, 加了 static 关键字. 也可以叫做静态变量
3.静态变量和实例变量的区别
- 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
- 在程序运行时的区别:实例变量属于某个对象的属性, 必须创建了实例对象(比如 new 一个), 其中的实例变量才会被分配空间, 才能使用这个实例变量. 静态变量不属于某个实例对象, 而是属于类, 所以也称为类变量, 只要程序加载了类的字节码, 不用创建任何实例对象, 静态变量就会被分配空间, 静态变量就可以被使用了.
- 总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用.
4.多态
多态就是指一个变量, 一个方法或者一个对象可以有不同的形式.
多态主要分为
- 重载overloading
就是一个类里有两个或更多的函数,名字相同而他们的参数不同.
- 覆写overriding
是发生在子类中!也就是说必须有继承的情况下才有覆盖发生. 当你继承父类的方法时, 如果你感到哪个方法不爽,功能要变,那就把那个函数在子类中重新实现一遍.
5.接口 Interface
接口的特点
- 不能实例化。
- 没有构造体。
- 默认的方法是抽象的 (abstract).同时也是隐式的 public. 也就是说声明时, 可以省略 public abstract。
- 只能含有声明为 final static 的 field。
- 可以使用关键字 default 修饰有方法体的方法。