黑马程序员_03 抽象类和接口

来源:互联网 发布:淘宝网长袖围裙 编辑:程序博客网 时间:2024/05/22 06:55

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ---------------------- 

                                       抽象类和接口

一:抽象类

包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,
类就必须指定成 abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,
没有方法主体。抽象方法声明时采用的语法:abstract void f();
抽象类定义规则:
(1) 抽象类和抽象方法都必须用abstract关键字来修饰。
(2) 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象。
(3) 抽象方法只能声明,而不能实现。
(4) 含抽象方法的类必须被声明为抽象类;抽象类的子类必须覆写所有的抽象方法
才能被实例化,否则这个子类还是抽象类。
抽象类和一般类没有太大的不同,该如何描述就如何描述,只不过该事物中出现了一
些 看不懂的东西,这些看不懂的东西需要明确体现,但无法定义主体,通过抽象方法
来表示。
abstract class Instrument {//包含抽象方法的类,必须标识 abstract, 否则编译器会报错
// 抽象类中可以有非抽象方法。
private int i;
public abstract void play(noll n);
public String what() { return "Instrument"; }
public abstract void adjust();
}
             
               注意:不含任何抽象方法的抽象类是为了不让new对象;

二:接口
接口定义时,格式特点:
(1)接口中常见定义:常量和抽象方法;
(2)接口中成员都有固定修饰符 常量:public static final
方法:public abstract
记住:接口中的成员都是public;
接口特点:
(1)类和接口之间是实现关系,类在继承一个类的同时实现多个接口;
(2)接口和接口之间可以有继承关系;
(3)接口是对外暴漏的规则;
(4)接口是程序功能的扩展;
(5)接口可以用来多实现;
注意:初期可以理解成都是抽象方法的类定义成接口;
三:抽象类和接口的区别:
1:.abstract class在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。
但是,一个类却可以实现多个interface。 继承抽象类使用的是extends关键字,实现接口使用
的是implements关键字,继承写在前面,实现接口写在后面。如果实现多个接口,中间用逗号
分隔。例:
public class Main extends JApplet
public class Main implements Runnable
public class Main extends JApplet implements ActionListener
public class Main extends JApplet implements ActionListener, Runnable
2:.在abstract class中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface
中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不
定义数据成员),所有的成员方法都是abstract的。
3:.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则
不能有实现方法。
 4:接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,
也不能改变其值。抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
5:接口中的方法默认都是 public,abstract 类型的。


--------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------