标签:size 活性 private bst 构造器 bsp circle final 参数
抽象类 : 几何图形class Figure
子类: 矩形class Rectangle 圆class Circle三角形class Triangle 等... 属性: 曲边 ,直边, 几条边, 求面积, 求周长...
如果没有抽象类,父类提取出来的共性必须是唯一的,实现的,稳定的,那么求面积,求周长,都不能提取,当一个方法的功能是处理几何图形,参数是Figure f .当接收一个图形时,求其周长还要事先把 f 向下转型,很是麻烦.但是如果引入抽象类,可以把求周长的公式提取出来,但是不必实现,当然也无法实现.这样就不用向下转型了.增加了灵活性,而且子类继承了抽象类,必须把抽象类的所有抽象方法必须全实现,才能new实例,这样抽象类带来了另外一个好处:模板,规定子类必须要干什么!
(1)抽象类用abstract修饰,抽象类不能new出实体
(2)抽象类提取出的共性,能实现的直接实现,不能实现的用abstract修饰,不必实现,由子类继承重写
(3)抽象类应该尽可能提取最多的共性,不用在乎能不能实现.
(4)抽象类不能new出实体,就是用来且必须被继承的,继承者必须重写其全部的抽象方法,才能new出实体,否则,继承者也是个抽象类.
(5)abstract修饰的类被继承才有意义,abstract修饰的方法被重写才能new出实体,而final修饰的类不能被继承,方法不能被重写,所以abstract和final不能同时使用.
(6)private修饰的方法子类无法触及,所以private和abstract也不通用.
(7)抽象类也有构造器,但是这个构造器并不是为了new出对象,而是给继承者的构造器调用的.
抽象方法和普通方法 形式上的区别: public abstruct void abstructFun(); public void fun() {}
标签:size 活性 private bst 构造器 bsp circle final 参数
原文地址:http://www.cnblogs.com/joyeehe/p/7895055.html