面向对象编程
对象
对象具有状态、行为和标识。
- 状态:每个对象可以有自己的数据(属性)
- 行为:每个对象可以产生行为(函数)
- 标识:表明每个对象都区别于其它的对象(地址)
面向对象编程的三要素
封装(Encapsulation)
封装是为了提高代码可维护性和易用性,降低接口复杂度,来隐藏信息或者保护数据。
Java语言利用访问修饰符来达到封装的目的。private,protected,public三个级别,当不使用访问修饰符时,类默认是同一个包下可见,接口默认是public级别。
继承(Inheritance)
继承是为了代码复用。将公共部分提取到父类中,让不同的子类来继承父类。
Java语言支持单继承多实现。
为什么不支持多继承?设计者的初衷,让java更简单,所以选择了单继承多实现,避免多继承中函数冲突的问题。
1.8之后允许接口有default的方法,如果多接口中默认实现的函数定义一致,则会失去默认实现的意义,必须实现类自己来实现。
public interface InterA {
default void action(){
System.out.println("InterA action");
}
}
public interface InterB {
default void action(){
System.out.println("InterB action");
}
}
// 提示:Inter inherits unrelated defaults for action() from types InterA and InterB
public class Inter implements InterA, InterB {
}
/