黑马程序员_学习日记第7天——接口、抽象类

来源:互联网 发布:linux arp 广播 编辑:程序博客网 时间:2024/06/10 10:09

---------------------- ASP.Net+Android+IOS开发、href="http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------

1、抽象类

当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体。

抽象类的特点:

1)抽象方法一定在抽象类中;

2)抽象方法和抽象类都必须被abstract关键字修饰;

3)抽象类不可以用new创建对象,因为调用抽象方法没有意义;

4)抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

2、抽象类和一般类没有太大的不同,该如何描述事物就如何描述事物,只不过该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体。通过抽象方法来表示。

抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。抽象 类不可以实例化。

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让建立对象。

3、模板方法模式

在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。

[java] view plaincopy在CODE上查看代码片派生到我的代码片
  1. abstract class GetTime {  
  2.     public final void getTime() {  
  3.         long start = System.currentTimeMillis();  
  4.         runcode();  
  5.         long end = System.currentTimeMillis();  
  6.         System.out.println("毫秒:"+(end-start));  
  7.     }  
  8.     public abstract void runcode();  
  9. }  
提高扩展性,提高复用性。

4、接口

初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示

class用于定义类,interface用于定义接口。

接口定义时,格式特点:

1)接口中常见定义:常量,抽象方法;

2)接口中的成员都有固定的修饰符:常量:public static final 方法:public abstract  修饰符均可省略,但不建议省去。

接口中的成员都是public的
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全部都覆盖后,子类才可以实例化,否则子类是一个抽象类。

5、接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现。

接口与接口间的关系是继承,同时,接口间可以多继承,但要注意相同方法间的返回值类型必须一致。

----------------------ASP.Net+Android+IOS开发、href="http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net


0 0