抽象方法:
由abstract修饰
只有方法定义,没有具体实现(连{}都没有)
抽象类
1.由abstract修饰
2.包含抽象方法的类必须是抽象类
3.抽象类不能被实例化(new对象)
4.抽象类需要被继承的,派生类:
重写抽象方法--------变不完整为完整
也声明为抽象类-------但用法较少
设计规则:
1.将派生类共有的属性和行为,抽到超类中------抽共性
2.若派生类的行为都一样,设计为普通方法
若派生类行为不一样,设计为抽象方法
3.将部分子类所共有的行为和属性抽到接口中
-接口是对继承的单根性的扩展----实现多继承
抽象方法相关:
1.抽象方法是为了保证当向上造型发生时,通过超类的引用能点出那个方法
2.设计为普通方法意味着派生类可以重写也可以不重写,但设计为抽象方法,可以强制派生类必须重写-----达到统一的目的
3.抽象类的意义:
-封装共有的属性和行为-------代码复用
-为所有派生类提供统一的类型----向上造型(代码复用)
-可以包含抽象方法,为所有的派生类提供统一的入口(向上造型后能点出来),同时可以达到强制必须重写的目的(相当于制定了一个标准)