方法重写与抽象类

方法重写:

  • 子类出现了和父类中一样的方法声明,方法名和参数列表一样;
  • 方法重写可以沿袭父类的功能,又能定义子类特有的内容
  • Override注解可以用来检测当前的方法,是否是重写的方法。

方法重写注意事项:

  • 私有方法不能被重写,私有成员不能被外界访问,所以不能继承;
  • 子类重写方法访问权限不能降低(public > 默认 > 私有),必需大于等于父类
  • 静态方法不能被重写,如果子类也有相同的方法,不属于方法重写。

fianl关键字 :

  • final代表最终的意思,可以修饰方法,变量和类。
    • 修饰类:该类不能被继承
    • 修饰方法:该方法不能重写不希望子类重写的方法,可以用fianl修饰;
    • 修饰基本数据类型的变量:表明该变量是一个常量,不能再次赋值
    • 修饰引用数据类型的变量:地址值不可改变,地址内的数据可以改变

抽象类:

  • 有些方法在父类中不能具体明确,需要子类单独进行重写,这个时候就需要抽象类了;
  • 抽象方法是没有方法体的方法,一个类中如果有抽象方法,该类必须定义为抽象类。

抽象类的特点:

  • 抽象类和抽象方法必须使用abstract 关键字修饰

    //抽象类的定义
    public abstract class 类名 {}
    ​
    //抽象方法的定义
    public abstract void eat();
  • 抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类;

  • 抽象类可以有构造方法,但不能创建对象

  • 抽象类的子类,要么重写抽象类中的所有抽象方法,要么是抽象类,抽象方法终将重写

 


版权声明:本文为m0_62091368原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。