从面向对象设计的角度来说,抽象类与抽象方法,接口都是必不可少的内容,正是这些概念以及实际运用,够成了java面向对象的核心与强大,抽象类,方法是和多态密不可分的设计范式....
何为多态?简单的说就是一类事物的多种形态,基本类型有多种形态(类型自动转换),方法有多种形态(重载:同名不同参),引用类型的多态则相对复杂,比如说,一个描述人类的类,里面有个方法叫说话,不同语言的人说出来是不一样的,中国人说汉语,外国人说我听不懂的鸟语...在人类这个类中怎么实现说话呢?可想而知是不现实的,最好的方法就是把这个说话的方法设计成抽象方法,不提供具体实现,让继承人类的子类去重写(重写:同名,同参,同返回,范围不能变小,异常不能变大)这个方法...
何为抽象类?抽象类是从其他若干个具有相同属性与行为的类中进一步抽象出来的类,可以设计方法,属性,如果把类设计为抽象类,那么这个类是不能被实例化的,只能被继承的子类(子类也可以为抽象类,也可以不是)间接使用,抽象类有构造,是一个完整的类,抽象类中可以包含抽象方法,也可以不含,那么问题来了,既然把类设计成抽象,肯定是用于设计多态用的,一般都会包含抽象方法:
子类继承了抽象类,如果抽象类中含有抽象方法,那么子类也继承了抽象方法,包含抽象方法的类必须是抽象类,不然子类就必须重写抽象方法,就是提供具体实现,完成多态,
下面3条原则保证了抽象方法必须重写:
1、必须用public abstract修饰抽象方法,private ,static 都不能用于修饰
2、包含抽象方法的类必须是抽象类
3、抽象类可以不含抽象方法
还有就是在GUI编程的那里,关于事件的监听,楼主可以去看看,了解了解,了解一下那种设计模式,相信你可以得到你想要的答案哦!
希望可以帮到楼主、、、
The you smile until forever 、、、、、、、、、、、、、、、、、、、、、 |