抽象类 和 接口
2017-12-15 10:39
169 查看
抽象类是把一类事物的公共特点提取出来。
接口是一个极度抽象的类,是一个特殊的抽象类。
抽象类和接口的联系和区别:
抽象类:
1抽象类和接口都不能被实例化,
2抽象类可以被继承
3 抽象类里可以有非抽象方法
4抽象类可以实现抽象方法
5抽象类中的方法一般是public的,否则子类不能实现其方法
抽象方法:不能被static、native方法和synchronized 修饰,抽象方法就是为了让子类重写,如果不能被子类重写写个方法就没有意义了;在java中native方法是由本地代码实现的,抽象方法没有实现,这是矛盾的。synchronized涉及到具体的实现细节,抽象方法中没有实现。
接口:
1接口可以被接口继承extends,不能被类继承,只能被类实现implements
2 接口中可以定义常量,但必须被static final修饰,*static final可以被省略,但是默认的还是final的,所以必须初始化赋值。
3接口被实现,接口中的方法也必须被全部实现
4接口中的方法默认都说abstract的,即时不写压实这样的,没有方法体
5接口中的方法一般是public的,否则子类不能实现其方法
6接口可以被多实现,分别用逗号隔开
public interface a{
int q=1;
void a();
void b();
}
public class D implements A,B{
//实现A
//实现B
}
接口是一个极度抽象的类,是一个特殊的抽象类。
抽象类和接口的联系和区别:
抽象类:
1抽象类和接口都不能被实例化,
2抽象类可以被继承
3 抽象类里可以有非抽象方法
4抽象类可以实现抽象方法
5抽象类中的方法一般是public的,否则子类不能实现其方法
抽象方法:不能被static、native方法和synchronized 修饰,抽象方法就是为了让子类重写,如果不能被子类重写写个方法就没有意义了;在java中native方法是由本地代码实现的,抽象方法没有实现,这是矛盾的。synchronized涉及到具体的实现细节,抽象方法中没有实现。
接口:
1接口可以被接口继承extends,不能被类继承,只能被类实现implements
2 接口中可以定义常量,但必须被static final修饰,*static final可以被省略,但是默认的还是final的,所以必须初始化赋值。
3接口被实现,接口中的方法也必须被全部实现
4接口中的方法默认都说abstract的,即时不写压实这样的,没有方法体
5接口中的方法一般是public的,否则子类不能实现其方法
6接口可以被多实现,分别用逗号隔开
public interface a{
int q=1;
void a();
void b();
}
public class D implements A,B{
//实现A
//实现B
}
相关文章推荐
- 深入理解Java的接口和抽象类
- java中抽象类与接口的关系图解
- 接口和抽象类有什么区别
- C#.NET里面抽象类和接口有什么区别
- (转)C#中抽象类和接口的区别
- Java的抽象类和接口的区别
- python实现自动化远程控制(2)--构造抽象类和接口
- 抽象类与接口的区别及应用
- JAVA 抽象类、值交换、接口、多态
- 面向对象的故事~数据底层操作告诉了我们接口,抽象类,继承与多态性的使用
- 设计:抽象类类还是接口
- [好程序员训练营]java基础之抽象类和接口的区别小结
- java 抽象类和接口的理解
- 接口与抽象类的区别
- PHP的接口类(interface)和抽象类(abstract)的区别
- 抽象类和接口联系与区别
- 抽象类、接口(包括Java8新特性)
- 抽象类和接口的区别
- 抽象类VS接口
- 抽象类和接口