抽象类:在某些类中某些功能不能定义具体的行为功能,这种功能称之为抽象功能,含有抽象功能的类,就称为抽象类。
抽象类的特点:抽象类和抽象方法必须用abstract关键字修饰
抽象类的格式: abstract class类名{}
抽象方法的格式:
public abstract void 方法()
抽象类不一定含有抽象方法,有抽象方法的类一定是抽象类。
抽象类不能实例化,因为该类不是具体的实现类。
抽象类需要按照多态的形式,由具体的子类实例化。
抽象类的子类要么是抽象类,要么必须重写并实现抽象类中的所有方法。
抽象类是有构造方法的,但是不能进行实例化,构造方法的作用是用于子类访问父类数据时进行父类数据的初始化。
抽象方法的访问权限必须是public
抽象类的成员特点:
成员变量:可以是变量或者常量
构造方法:有构造方法,但是无法实例化。
成员方法:可以是抽象方法,也可以是非抽象的成员方法。
抽象方法的作用:强制子类做自己的事情
非抽象方法:交由子类继承,提高代码的复用性。
抽象可以有静态变量,常量和静态方法。
方法的空实现并不等同于该方法是一个抽象方法。
多态的实现,是为了提高程序的可扩展性。
在软件开发中一般会定义一个空的类作为基类,便于组织和管理代码的体系结构。
软件分析的过程:从具体功能到抽象定义。
软件的实现过程:从抽象定义到具体功能。
抽象类的小问题
1. 抽象类不能用final修饰。抽象方法也不能用final修饰。
2. 抽象方法不能用private修饰。
3. 抽象方法不能用static修饰。
接口:用来表现一些特殊的功能的抽象叙述,交由实现接口的类完成接口中的方法。
接口的特点:
接口用关键字interface表示
格式:interface 接口名{}
类实现接口的方式 calss 类名 implements 接口名{}
接口的实例化:接口不能直接实例化,需要按照多态的方式,由具体的子类进行实例化。接口也是多态的一种表现形式
实现接口的类,要么是抽象类,要么重写并实现了接口中的所有抽象方法。
接口中定义的变量默认都是用 public static
接口中定义的方法默认都是用public abstract 修饰的。
接口里面定义的内部类,接口默认都是用public static修饰的
接口可以继承接口。
接口里面可以没有任何成员,从而作为某种标示。
接口和抽象类的区别?
接口不能有非抽象方法和 非静态变量。
接口的抽象类实现没有实际的意义。
多态的三种表现形式:具体类多态 抽象类多态 接口多态
版权声明:本文为博主原创文章,未经博主允许不得转载。