主要思想: 基于某个父类的扩展,制定出一个新的子类,子类可以继承父类原有的属性和方法,也可以增加原来父类所不具备的属性和方法.或者直接重写(可以理解覆盖)父类的某些方法.

可以在子类中使用 super 关键字调用父类的成员方法等,但是子类没有权限调用父类private方法,只可以调用public或protected方法.

重写父类方法就是在子类中将父类的成员方法的名称保留,重写成员方法的实现内容,更改成员方法的存储权限,或者修改成员方法的返回值类型

所有类都继承了Object类,由于所有的类都是Object的子类,所以定义类的时候,省略了extends Object关键字了.任何类都可以重新Object类中的非final类型的方法.

new创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放在栈内存中)。一个对象引用可以指向0个或1个对象(一根绳子可以不系气球,也可以系一个气球);一个对象可以有n个引用指向它(可以想想浅拷贝问题)。

1.单继承和不继承

一个类只能继承一个父类, 一个类可以有多个子类,

构造方法不能继承,没有访问权限的成员不能继承, 静态成员不能继承

2.面向对象和面向过程的区别

面向对象
优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点: 性能比面向过程低

面向过程
优点: 性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发
缺点: 没有面向对象易维护、易复用、易扩展