抽象类:有abstract修饰的类,只是定义了什么方法应该存在,不能创建对象,必须派生一个子类,并在子类中实现其未实现的方法后才能创建对象
方法前加上abstract就形成抽象方法,只有方法声明没有实现代码。
抽象类,抽象方法实例:
abstract class Person{
public abstract String getDescription();
}
抽象类中可以包含非抽象方法和成员变量
抽象类三种类型
1.直接定义一个抽象方法:继承的子类必须实现父类所有的抽象方法否则他仍是抽象类。
class Employee extends Person{
public String getDescription(){
//....
return "";
}
}
抽象类不能创建对象,一般用它来引用子类对象
Person p;
p=new Employee();
抽象类 抽象类变量名=new 派生自抽象类的具体子类();
2.继承一个抽象父类,但没有完全实现父类包含的抽象方法
3.实现一个接口,但没有完全实现此接口所包容的抽象方法。
public interface IFood{
public void Cook();
}
public class Duck extends Bird implements IFood{
public void Cook(){
//....
}
//...
}
IFood f=new Duck();
接口类型 接口类型变量名=new 实现接口的具体类型();
接口语法特性:
定义一个接口采用关键字interface,实现一个接口采用关键字implements
接口成员函数自动变成public,数据成员成为static和final
如果接口不声明为public,则自动变为package
一个类可以同时实现多个接口。
接口扩充:
通过继承接口来扩充已有接口,形成一个新的接口
interface OneInterface {
void f1();
}
interface TwoInterface extends OneInterface {
void f2();
}
利用接口定义常量,一个类声明了这个接口,可以直接使用,接口中常量必须初始化。
public interface ArrayBound{
public static final int LOWBOUND=1;
public static final int UPBOUND=100;
}
参考:金旭亮Java编程系列(2014版)