---------------------- ASP.Net+Android+IOS开发、href="http://edu.youkuaiyun.com"target="blank">.Net培训、期待与您交流! ----------------------
1、抽象类
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体。
抽象类的特点:
1)抽象方法一定在抽象类中;
2)抽象方法和抽象类都必须被abstract关键字修饰;
3)抽象类不可以用new创建对象,因为调用抽象方法没有意义;
4)抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
2、抽象类和一般类没有太大的不同,该如何描述事物就如何描述事物,只不过该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体。通过抽象方法来表示。
抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。抽象 类不可以实例化。
特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让建立对象。
3、模板方法模式
在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。
- abstract class GetTime {
- public final void getTime() {
- long start = System.currentTimeMillis();
- runcode();
- long end = System.currentTimeMillis();
- System.out.println("毫秒:"+(end-start));
- }
- public abstract void runcode();
- }
4、接口
初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
class用于定义类,interface用于定义接口。
接口定义时,格式特点:
1)接口中常见定义:常量,抽象方法;
2)接口中的成员都有固定的修饰符:常量:public static final 方法:public abstract 修饰符均可省略,但不建议省去。
接口中的成员都是public的
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全部都覆盖后,子类才可以实例化,否则子类是一个抽象类。
5、接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现。
接口与接口间的关系是继承,同时,接口间可以多继承,但要注意相同方法间的返回值类型必须一致。
---------------------- ASP.Net+Android+IOS开发、href="http://edu.youkuaiyun.com"target="blank">.Net培训、期待与您交流! ----------------------详细请查看:http://edu.youkuaiyun.com