抽象类、接口

来源:互联网 发布:手机通话变声器软件 编辑:程序博客网 时间:2024/06/12 19:17
1.抽象类、接口、内部类。
 抽象类:存在与父子类中,将子类中公有的方法放进父类,但是由于方法的实现方式在不同子了中又不同方式,
 此时在父类中的方法不能写具体的方法体,因此用abstract修饰写成抽象类,因此该类没有方法体,他是不完整的,
2.抽象类的特点  
  1)由abstract修饰
  2)包含抽象方法的类必须是抽象类
abstract Aoo{
abstract void b();//抽象类的方法没有方法体括号都没有
  }
  不包含抽象方法的类也可以声明为抽象类---我乐意
3)抽象类不能被实例化
  Aoo a=new Aoo();错
  4)抽象类是需要被继承的,子类:
  4.1)重写所有抽象方法----常用
  4.2)也声明为抽象类------不常用
abstract Aoo{
abstract void b();
  }
class Boo extends Aoo{
  oid b(){
  }
  }
  合法的实例化Aoo a=new Boo();向上造型。
3.抽象类的意义:
  在父类中有一个共有的方法,通过配合向上造型可以减少代码量
  1)封装子类所共有的属性和行为,代码复用
  2)为所有子类提供了统一的类型,向上造型
  3)可以包含抽象方法,为所有子类提供了统一的入口
4.接口:
  1)是一个标准、规范
  2)由interface定义
  3)只能包含常量和抽象方法
    可以不写publicfianl static   publicabstract系统默认添加
   注意在实现接口时需要重写所有的抽象方法,在实现接口时要用public修饰(必须写)
   子类修饰权限必须大于等于父类,父类默认是public子类必须也是public
   在继承中同样的道理。子类权限必须大于等于父类
  4)接口不能被实例化
  5)接口是需要被实现/继承的,实现类/子类:
     必须重写接口中的所有抽象方法
  6)一个类可以实现多个接口
   若又继承又实现时,应先继承后实现
  7)接口可以继承一个或多个接口
    publicinterface Aoo{
    intNUM=12;
    voida();
    }
    class Booimplements Aoo{
    public voida(){}
    }
   public必须写!!!!!!!!
5.抽象类和接口的区别:
全部子类公有方法抽成父类,如果方法的实现方式与对象有关,将该方法抽成抽象方法。由于方法是抽象方法所以类是抽象类。
部分子类公有方法构成接口。接口可以实现多个公有功能,但是在抽象类的继承中,每个子类只能继承一个父类。


原创粉丝点击