文章标题

来源:互联网 发布:设置mysql远程访问 编辑:程序博客网 时间:2024/05/22 15:49
                    对抽象类的理解

编写一个类的时候,会为该类定义一些方法,用以描述该类的行为方式;
有一种特殊的情况,父类只是知道其子类应该包含什么方法,但是无法准确的知道这些子类怎样实现这些方法;

抽象方法和抽象类

必须用abstract修饰符来定义抽象方法和抽象类;存在抽象方法的类只能被定义成抽象类,然而抽象类里面可以不存在抽象方法;
抽象方法不能有方法体
抽象方法不能被实例化,即无法使用new关键字来调用抽象类的构造器来创建抽象类的实例
抽象类可以包含成员变量、方法、构造器、初始化块、内部类5中成员,但是抽象类的构造器不能用于创建实例,主要是用于被其子类继承

static和abstract不能同时修饰某个方法:因为当使用static修饰一个方法时,表示这个方法属于类本身,即可以通过类来调用该方法,但如果用abstract修饰就会被定义成抽象方法;这样则会导致该类来调用该方法的时候出现错误(调用了一个没有方法体的方法肯定会引起错误),所以static和abstract不能同事修饰某个方法;

P188,一个方法继承了抽象类,实现了相关的方法;而另一个类也继承了同样的抽象方法,利用多态的优势,就不用在自己的类里面写出方法的实现;这样就相当于抽离出来了工具累的样子回头好好研究一下
实现调用同样的方法,得到不同的结果

利用抽象类和抽象方法就可以更好的发挥多态的优势,让程序更加的灵活,降低耦合度;

抽象类的作用

好激动,涉及到一些简单的算法的内容了

抽象类的定义:抽象类是从多个具体类抽象出来的父类,它据有更高层次的抽象。从多个具体类抽象出一个抽象类,一这个抽象类为其子类的模板

抽象类体现的是一种模板模式的设计,抽象类作为多个子类的通用模版
1、编写一个抽象父类,父类提供多个多个子类的通用方法,并把一个或多个方法留给其子类来实现,这就是一种模板模式;
2、第二张范例模式是:父类的普通方法一类与一个抽象的方法,二抽象的方法则推迟到子类来提供实现;P189

模板模式的一些简单规则

1、抽象父类可以只定义需要使用的某些方法,把不能实现的部分抽象成抽象方法,留给其子类去实现
2、父类中可能包含需要调用其他系列方法的方法,这些被调用的方法既可以偶父类来实现,也可以由子类来实现,父类里提供的方法只是定义了一个通用算法;

0 0