抽象类
在Java语言中使用abstract class来定义抽象类。
例如:public abstract class A{
......
}
尽管类A是抽象类,但是它仍然可以有成员变量、成员方法和构造方法。
1.抽象类的注意点:不能被实例化
可以被继承
2.声明抽象方法会要注意:如果一个类包含抽象方法,那么该类必须是抽象类
任何子类必须重写父类的抽象方法,或者声明自身为抽象类
构造方法、类方法(用static修饰的方法)不能声明为抽象方法
接口
所谓的接口(interface),实际上就是常量和抽象方法组成的特殊的类
一个类实现了某个接口时,并不能直接使用接口中的常量和方法来实现所需要的功能
接口定义的语法格式如下:
[访问控制修饰符] interface 接口名 [extends 接口列表]{
常量
抽象方法
}
访问控制修饰符的要求与类的一致,只能使用public和default(在使用default时,访问控制修饰符可以不写)
-------注意:在使用default时接口只能被同一个包的类使用,public可以被任意一个类使用
接口:接口名同标识符
接口页时可以继承的,其语法与类的继承是一样的
与类继承的区别在于一个接口可以有多个父接口,这些父接口之间用逗号" , "隔开,形成父接口列表。
接口的特性:接口不可以被实例化(new)
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态变量
接口的优势:可以被多继承
设计和实现完全分离
更自然的使用多态
更容易更换实现
更容易搭建程序框架
......