面向对象 (封装,继承,多态)
访问控制符:public:任意 protected:同包及任意子类 default:同包,同类 private:同类
1.引用:通过引用访问实例属性,控制的是实例行为,引用变量保存的是实例的内存首地址
2.方法重载:同一类中同名不同参数的方法
3.java参数传递的是传值:
基本类型传递的值是复制数据本身
引用类型传递的值是实例的内存地址
this 在局部代码中引用成员变量
this是特殊引用,记录当前实例内存首地址
在构造方法调用其它构造方法
4.extends 继承父类中的属性,方法,不可以继承构造方法,没有访问权限的成员
重写要求:1)与父类方法重名(返回类型,参数列表)
2)访问范围不能变小
3)抛出的异常不能更多
5.父类实例不能转为子类型,子类实例可以先转为父类再转为子类
子类转为父类后,子类中扩展的属性方法被隐藏,只能调用父类中定义的属性,方法
Object类:所有类型的顶层父类
instanceof:判断一个变量是否是指定的类型
6.final关键字
final 变量的值不能改变,基本类型数据不变,引用类型其指向不变
final方法不能被子类重写
final类不能有子类
7.static
static成员不属于实例,属于类,在内存空间中只有唯一的一个内存地址。
8.abstract
抽象类不能创建实例,包含抽象方法的类必须是抽象类,抽象类可以包含或不包含抽象方法
9.interface
接口中只能声明 1)抽象方法 2)常量
允许同时实现多个接口
接口可以继承接口
10.finalize
垃圾回收器回收一个无用实例时,先调用其finalize方法,然后清理其占用的内存,
System.gc();向虚拟机建议进行垃圾回收
面向对象设计原则:面向接口,面向抽象而不面向实现