java 抽象类与接口的异同
2015-06-07 09:39
375 查看
类型 | 抽象类 | 接口 |
成员变量 | 随意(无抽象变量) | 只能是静态常量(public static final) |
局部变量 | 随意(无抽象变量) | |
普通方法 | 有 | 无 |
类方法 | 没有 | 有方法体 |
抽象方法 | 无方法体 | 有方法体 |
默认方法 | Default有方法体 | |
内部类 | 有 | 内部接口和枚举 |
构造器 | 没有 | 有 |
初始化块 | 没有 | 有 |
内部类 | 有 | |
继承 | 单继承 | 多继承 |
权限 | public | Public |
abstract class fa{
public int a=1;
int b=2;
private char d='s';
abstract public void c();//抽象方法
{
System.out.println("我只是一个初始化块");
}
public fa(){
System.out.println("我是一个父类构造器");
}
public void faa(){
System.out.println("抽象类的普通方法");
}
}
interface faa{
public static final int aa=123;//变量只能是静态常量
abstract void ca();//抽象方法
public static void ca1(){
System.out.println("接口的静态方法");
}
default void ca2(){
System.out.println("接口的默认方法");
}
}
class son extends fa{//类继承类,抽象方法都要实现
public son(){
super();
System.out.println("继承父类的构造器");
}
@Override
public void c() {
// TODO Auto-generated method stub
System.out.println("我只是一个子类的实现方法");
}
}
interface sonin extends faa{//接口及承接口,抽象方法不要全实现,因为其还是接口
public void ca();
public static final int o=123;
public static void ss(){
System.out.println("我是子接口的静态方法");
}
public default void sss(){
System.out.println("我是子接口的默认方法");
}
}
class soncl implements faa{//类继承接口
@Override
public void ca() {
// TODO Auto-generated method stub
System.out.println("类继承接口的抽象方法实现体");
}
public soncl(){
System.out.println("类继承接口的构造方法");
}
{
System.out.println("类继承接口的初始化块");
}
public void asddsa(){
System.out.println("类继承接口的普通方法实现体");
}
}
class finish extends fa implements faa{
@Override
public void ca() {
// TODO Auto-generated method stub
System.out.println("类继承抽象类的抽象方法实现体");
}
@Override
public void c() {
// TODO Auto-generated method stub
System.out.println("类继承接口的抽象方法实现体");
}
}
public class asd {
public int a=12;
public static void main(String[] args) {
// TODO Auto-generated method stub
son asd=new son();
asd.c();
}
}
相关文章推荐
- Java多线程<1>
- JAVA开发读取文件的方法
- Java创建Servlet找不到javax.servlet.*解决方案解决创建servlet 找不到webservlet包
- java生成随机数的两种方式
- java生成随机数的两种方式
- java中单例设计模式的两种实现方式
- Java 对象序列化和操作文件 正则表达式
- Java Web 第一篇 web应用和web.xml文件
- java多线程(一)基础概念
- java-IO流(下)
- Spring学习笔记 IOC原理实现
- Java学习--知识点1--static关键字
- Java使用反射来获取成员变量泛型信息
- eclipse快捷键
- Java面向对象小记(3)
- Struts2中的Action和ActionSupport
- 为eclipse离线安装hibernate tools插件
- Java排序算法
- spring4+websocket(兼容低版本ie)
- Maven搭建Spring Security3.2项目详解