1·接口
接口是用来建立类与类之间的协议,它所提供的只是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字。一个类实现某一接口,必须实现接口中定义的所有方法。 一个类可以实现多个接口。
public interface
接口名
{
int num=100;
// 属性 : 默认static final 修饰
// 静态 - 常量
// 由static 修饰的 属性和方法 不属于对象 可以由类名、接口名直接调用
// 唯一一份 只属于类型
// 方法: 没有方法体
public abstract void test(); }
// 只要一个结构体中 有抽象的方法就不能实例化
2.继承
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
继承 子类继承父类 -- 子类继承父类所有的属性与方法。
子类可以重写的方法 - 都是优先调用重写的之后的方法。
一个方法被重写之后,优先调用重写之后的方法。
public class 子类(派生类) extends 父类(基类,超类){};
public class UNStudent extends Student{
public void printName(){
System.out.println("名字:"+getName());
}
//2.方法重写(覆盖)
//a.有继承关系的两个类之间 b.(访问修饰符大于等于父类)返回值类型,方法名,参数类型(个数,顺序)完全一样
public void study(){
//调用父类的方法
//super 表示当前类的父类对象
// super.study();
System.out.println("子类重写父类的方法!");
}
}
3·区别
1
- 接口可以被多重实现,抽象类只能被单一继承
2
- 接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法
- 接口可以用于支持回调,而继承并不具备这个特点
3
- 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段
- 抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。