抽象类: 类有的属性都有
访问权限修饰符 abstract class 类名{
//普通属性
//普通方法
//抽象方法
访问权限修饰符 abstract 方法名(); // 抽象方法声明
}
注意:
1.抽象方法(只能声明/一定) 在抽象类中;如果方法是抽象 的 而类不是,就会报错
2.当子类 继承 抽象类 时,必须 重写父类的所有抽象方法
3.抽象方法没有方法体;
4.抽象类不可以实例化(不可以用 new 创建对象)调用抽象方法没意义;
5.如果只继承抽象类的部分抽象方法,那么这个子类只能是抽象类
6.抽象类中 可以有抽象方法和非抽象法 ,可以没有抽象方法,但是抽象方法只能在抽象类中
子类必须完成的功能可以定义为抽象的, 如:睡觉(站着睡,躺着睡就是子类需要完成写的)
即 抽象父类 让子类必须完成抽象父类的抽象方法
好处:提高程序的扩展性
若普通父类继承与抽象父类并实现了抽象方法,那么普通父类的子类不需要重写抽象方法
若 抽象父类继承与一个抽象类;
那么抽象父类必须实现 父类的抽象方法 和 父类的父类 的抽象方法
访问权限修饰符 abstract class 类名{
//普通属性
//普通方法
//抽象方法
访问权限修饰符 abstract 方法名(); // 抽象方法声明
}
注意:
1.抽象方法(只能声明/一定) 在抽象类中;如果方法是抽象 的 而类不是,就会报错
2.当子类 继承 抽象类 时,必须 重写父类的所有抽象方法
3.抽象方法没有方法体;
4.抽象类不可以实例化(不可以用 new 创建对象)调用抽象方法没意义;
5.如果只继承抽象类的部分抽象方法,那么这个子类只能是抽象类
6.抽象类中 可以有抽象方法和非抽象法 ,可以没有抽象方法,但是抽象方法只能在抽象类中
子类必须完成的功能可以定义为抽象的, 如:睡觉(站着睡,躺着睡就是子类需要完成写的)
即 抽象父类 让子类必须完成抽象父类的抽象方法
好处:提高程序的扩展性
若普通父类继承与抽象父类并实现了抽象方法,那么普通父类的子类不需要重写抽象方法
若 抽象父类继承与一个抽象类;
那么抽象父类必须实现 父类的抽象方法 和 父类的父类 的抽象方法