抽象类

1、定义:没有包含足够的信息来描绘一个具体对象的类,不能被实例化,必须被继承;

2、abstract关键字:abstract class定义抽象类,普通类的其它功能依然存在,如变量、方法等;

public abstract class Person{
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sayHi(){
System.out.println("Hi");
}
public abstract void sayHello();
}

3、继承抽象类:一个类只能继承一个抽象类,可以实现多个接口;

4、抽象方法:抽象类中一种特别的方法,同样用abstract关键字声明,只包含方法名,没有方法体(上面的
        sayHello方法),抽象方法没有具体实现由继承的子类(非抽象类)实现;

  a、如果一个类包含抽象方法,那么该类必须是抽象类;

  b、子类必须重写父类的抽象方法,或者声明自身为抽象类,最终必须有非抽象子类实现抽象方法;

接口

1、定义:抽象方法的集合,用interface关键字声明,无法被实例化,可以被实现(implements关键字实现接口);

public interface Person {
public void sayHello(); //隐式抽象方法,不必写abstract关键字
} public class Student implements Person {
@Override
public void sayHello()
{
System.out.println("Student sayHello"); //实现接口里的方法
}
}

2、特性

  a、接口中的方法是隐式的抽象方法(public abstract);

  b、接口中的变量隐式的指定为 public static final 变量;

  c、接口中的方法不能在接口中实现,只能由实现接口的类来实现;

  d、接口允许多继承,extends关键字只需使用一次,其后跟着继承接口;

public interface Person {
public void sayHello(); //隐式抽象方法,不必写abstract关键字
} public interface Children {
public void sayHi(); //隐式抽象方法,不必写abstract关键字
} public interface Student extends Children,Person Person {
//类的多继承是不合法,但接口允许多继承
}

抽象类与接口的区别

1、抽象类中的方法可以有方法体,接口没有;

2、抽象类中的成员变量可以是各种类型的,接口中只能是 public static finl 类型;

3、抽象类中可以含有静态代码块和静态方法,接口没有;

4、一个类只能继承一个抽象类,而一个类却可以实现多个接口;

最新文章

  1. Python目录
  2. Linux0.11内核--进程调度分析之2.调度
  3. UITableView的使用
  4. RecyclerView item 状态错乱
  5. IT职业思考 谈谈IT外包公司
  6. Burp Suite使用
  7. BZOJ 3672 [Noi2014]购票 (熟练剖分+凸壳维护)
  8. 分享我设计的iOS项目目录结构
  9. Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)
  10. 支付宝APP支付(Java后台生成签名具体步骤)
  11. 你真的会玩SQL吗?透视转换
  12. 访问祖先类的虚方法(直接访问祖先类的VMT,但是这种方法在新版本中未必可靠)
  13. java抽象类和接口的区别(转载)
  14. Saltstack批量编译部署nginx(多模块)
  15. jQuery的入口函数四种写法
  16. 获取Android设备唯一标识码
  17. swift 学习- 21 -- 类型转换
  18. java linux ftp问题
  19. cpu怎么实现运算的
  20. centos限制用户使用部分命令

热门文章

  1. nutch中bin/crawl和bin/nutch crawl的用法(转)
  2. RS:推荐系统中的数据稀疏和冷启动问题
  3. Windows未能启动,原因可能是最近更改了硬件或软件,解决此问题的步骤
  4. R内存扩展 win7内存扩展
  5. Bash中的空格
  6. Atitit.  单列索引与多列索引 多个条件的查询原理与设计实现
  7. Atitit.index manager api design 索引管理api设计
  8. Android开发-状态栏着色原理和API版本号兼容处理
  9. sourceInsight设置
  10. layui的单选框