JAVA Day10

时间:2022-07-17 23:05:15
 
  • 使用继承
    • 编写继承:
      1. class Engineer{
      2. //公共的属性和方法
      3. }
       
    • 编写子类,继承父类,
      1. class SoftEnineer extends Enginerr{
      1. //子类持有的属性和方法
      1. }
      1. class OrderBill extends TestEngineer{
      1. } //只能继承一个父类
       
       
  • protected 修饰属性或方法的时候, 只有子类可以继承到.
  • 子类访问父类成员
    • super.name访问父类属性
    • super.print()访问父类方法
  • 父类属性->父类构造方法->子类属性->子类构造方法
  • 有些父类成员不能继承
    • 子类不能访问父类的private成员
    • 子类与父类不同包,使用默认反问权限的成员
    • 构造方法(只能调用,不能继承)
  • 访问修饰符
    • private 只在本类下可以用
    • 默认(friendly), 本类同包都可用
    • protected  本类同包子类都可用
    • public 都可用
  • 方法重写的规则
    • 在继承关系的子类中
    • 重写的方法名.参数.返回值类型必须与父类相同
    • 私有方法不能继承因而也无法重写
      1. @Override
      2. protected void sleep() {
      3. }
       
    • 方法重写--方法重载
      VS 位置 方法名 参数表 返回值 访问修饰符
      方法重写 子类 相同 相同 相同 不能比父类更严格
      方法重载 同类 相同 不相同 无关 无关
  • 何时使用继承
    • 与真实世界类似,符合is-a关系的设计使用继承
    • 继承也是代码重用的一种方式,将子类所有的属性和行为都放到父类里
  • java中也使用抽象类,限制实例化
      1. public abstract class lei(){
      2. public abstract void S();
      3. }
       
    • abstract也可用于方法--抽象方法
      • 抽象方法没有方法体
      • 抽象方法必须在抽象类
      • 抽象方法必须在子类中被实现,除非子类也是抽象类
  • final用法
    • 类不希望被继承
    • 方法不希望被重写
    • 属性值不希望被修改 final int a= 0;  public final void play(){};  public final class Piano{}
  • static
    • 可以用来修饰属性,方法和代码块和类
    • 修饰的属性和方法成为类属性(类变量).类方法