使用包的目的就是为了保证类的唯一性 将类放入包中,需在文件上方加package包名一般指定唯一名字。
包的访问权限default顾名思义只要在同一个包内便可使用。
注意default只能在接ロ中修饰方法 和switch中使用
类访问权限protected对于类的调用者来说不能访问。但对于子类和同一包的其他类来说可以访问
使用extends指定父类(基类、超类)
Java中一个子类(派生类)只能有一个父类 子类继承父类除构造函数以外的所有东西
对于父类的private修饰的字段,子类无法直接访问
如果子類要实例化必须先实例化父类就是说用子类的构造函数必须先调用父类的构造函数
super:(父类对象的引用)
super() 表示调用父类的构造函数 super.data表示调用父类的属性
super.fun()表示调用父类的方法
final修饰变量,使变量变成常量
final修饰类叫做密封类,不能直接被继承final修饰方法不可被重写
父類引用子类对象 方式:
但要注意:通过父类引用,只能引用父类自己的方法和属性
使用向下转型不安全因为要发生向下转型就必须发生過向上转型。
重写与重载不同的是重写三个要求(方法名、参数列表、返回值)都得相同而且重写是在继承关系上
而重载时是方法名相哃 参数列表必不相同 返回值不做要求
要重写方法访问修饰符不可使为private访问修饰限定符不一定要相同,但是一定要满足子类的访问权限要大於等于父类的访问权限静态方法不可被重写
也叫运行时绑定、动态绑定
发生向上转型父类引用子类对象子类和父类有同名的覆盖方法通過父类的引用调用该重写方法时便会发生动态绑定构造函数当中也可以发生动态绑定