抽象类也是类只是含有抽象的方法(但是抽象类不一定含有抽象方法,有抽象方法的类一定要被abstract修饰);
继承抽象类,重写抽象类中的方法,来实现自己的功能;
接口是全部成员全部是抽象的特殊类;(接口也是类)
用implements来实现接口;用重写(覆盖)来实现接口中的抽象方法;interfac A
但是一个抽象类实现接口的时候不用实现接口中的全部抽象方法;
接口的特点:
1接口不能实例对象(即不能使用new关键字),因为接口中的方法都是抽象的没有方法体;
2接口中的成员方法都是抽象的默认为public abstract;接口中的成变量都是全局变量:默认修饰符为public
static final
3当一个类不是抽象类的时候,实现接口的时候,必须得实现接口中的全部抽象方法(也就是重写接口中的全部方法。);
4但是一个抽象类实现接口的时候不用实现接口中的全部抽象方法;
5 一个类通过implements实现接口的时候可以实现多个接口,之间用逗号隔开;如: abstract class A implements B,C
一个接口可以extends多个接口如;interface A extends B,C(又涉及到继承体系的问题了)
当一个类extends其他的类的时候,也可以实现接口
只有抽象才需要重写;一般类不要重写;
java中不直接支持多继承,但是java支持实现多个接口;
abstract class Employee
{
private double pay;
private String name;
private String id;
Employee(double pay,String name,String id)
{
this.pay=pay;
this.name=name;
this.id=id;
}
abstract public void work() ;
}
class Program extends Employee
{
public Program(double pay, String name, String id)
{
super(pay,name,id);
// TODO 自动生成的构造函数存根
}
public void work()
{
System.out.println("code");
}
}
class Manager extends Employee
{
Manager(double pay,String name,String id)
{
super(pay,name,id);
}
public void work()
{
System.out.println("work 项目");
}
}
|
|