无法实现的方法可以定义成抽象方法,包含有抽象方法的类应该定义成抽象类; [访问权限] abstract 返回值类型 方法名称(参数列表); 列:public abstract void draw
();
如果某个类中包含有抽象方法,那么该类就必须定义成抽象类;定义抽象类同样使用关键字abstract
一般语法:
[访问权限] abstract class 类名 {
成员列表
}
抽象类不可以直接实例化,只可以用来继承
如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化;
构造方法和静态方法不可以修饰为abstract。
如果某个类中的所有方法都是抽象方法,那么可以考虑将该类定义为接口;定义接口使用关键字interface,
一般语法:
[访问权限] interface 接口名 {
成员列表
}
与抽象类相似,接口同样不可以实例化,只能用于实现
如果某类要实现接口,则使用implements关键字,
一般语法:
[访问权限] class 类名 implements 接口名 {
成员列表
}
某个类只能继承于一个父类,但可以实现多个接口,如:
public class 实现类名 implements 接口1,
接口2,
……,
接口n
{
成员列表
}
Java中还允许一个接口继承于另一个接口,即由父接口派生出子接口,如: public interface 子接口名 extends 父接口名 {
成员列表
}
这样的话,甚至可以使用父接口的引用指向子接口的实现类的对象
final 修饰变量时 该变量无法被改变 即变成常量
数据类型 常量名=值;
修饰某个方法 该方法不能被子类覆盖 public final void fun()
修饰某个类 该类无法被继承 final class 类名
类与类之间的关系一般来说有两种:“有”关系和“是”关系
所谓“是”关系就是指类的继承关系 而“有”关系是指在一个类中包含了另一个类的对象,即一个类中有另一个类(的对象),可以理解为类的嵌套