Fork me on GitHub

抽象类

Posted on 2019-09-03 18:03  攀一座山  阅读(193)  评论(0编辑  收藏  举报

1、什么情况下使用抽象方法、抽象类?

当我们某父类需要表现它的子类们具有某些行为特征(方法),但是在父类中又无法给出具体的实现时,那么这样的方法就可以声明为抽象方法,Java中规定包含抽象方法的类必须是一个抽象类。

 

2、抽象方法的语法格式

【权限修饰符】 abstract 返回值类型  方法名(【形参列表】);

抽象方法没有方法体

抽象方法不能是私有的(private)、静态的(static)、终结的(final)、本地的(native)

抽象方法的修饰符只能是public或protected,本包下也可以缺省。

 

3、抽象类的语法格式

【权限修饰符】 abstract class 类名 【extends 父类】{
   
}

抽象类可以有父类,它的父类可以是抽象的也可以是非抽象的。

 

4、抽象类的特点

(1)不能被实例化

(2)包含抽象方法的类必须是抽象类,但是反过来抽象类可以没有抽象方法。

(3)子类如果继承了抽象类,必须重写抽象父类的所有抽象方法,否则子类也得是抽象类。

(4)抽象类有也必须有构造器,是给子类调用的(因为子类继承父类时,需要为从父类继承的属性进行初始化)。

(5)抽象类的变量可以与子类的对象构成多态引用,通过抽象类的变量调用抽象方法时,执行的是子类“重写”的方法。

 

5、面试题:抽象类与普通的非抽象类的区别?

最主要的:抽象类不能实例化,可以包含抽象方法。

Copyright © 2024 攀一座山
Powered by .NET 9.0 on Kubernetes