首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

菜鸟学Java(九)

2013-09-28 
初学者学Java(九)抽象类和接口抽象类抽象类是一种特殊的类,一类事物有些相同的行为,而这些行为中的某些行

初学者学Java(九)
抽象类和接口抽象类    抽象类是一种特殊的类,一类事物有些相同的行为,而这些行为中的某些行为在每个事物身上又有不同的实现,比如叫这个方法,猫为“喵喵”,狗为“汪汪”,所以我们把这些事物的共同特征放在一个类中,这个类就是抽象类,而这些有不同实现的行为,我们定义为抽象方法。    抽象类:使用abstract关键字所修饰的类就是抽象类,抽象类无法被实例化,既不能用New关键字来创建抽象类的对象。
    抽象方法:使用abstract关键字所修饰的方法就叫做抽象方法,抽象方法必须定义在抽象类中,抽象方法不能有实现和括号,但抽象方法的后面必须有分号。    抽象类中可以全是具体方法,也可以全是抽象方法,当然也可以既有具体方法,又有抽象方法。但有抽象方法的类一定是抽象类,必须用abstract class来标识。    抽象类无法被实现,所以必须有继承他的子类,在他的子类中必须要实现其中的抽象方法,否则必须将子类也标识为抽象的类。    接下来我们写个例子来看看抽象类和抽象方法的具体使用方法。例:abstract class Animal{public abstract void speak();}class Dog extends Animal{public abstract void speak(){System.out.print("汪汪");}}class Cat extends Animal{public abstract void speak(){System.out.print("喵喵");}}    在上面这个程序中我们可以看出抽象类和抽象方法的基本用法。    有一种特殊的抽象类叫做接口,接下来我们来讲一下接口。接口    接口是一种特殊的抽象类,其内部的方法全为抽象方法。    接口是使用interface关键字进行定义,例:public interface Person{}因为接口中的方法都是抽象方法,所以其内方法可以不用abstract关键字来标识。    类实现一个接口要用关键字implements,例:class Student implements Person{}        同抽象类一样,一个类要实现一个接口,就必须要实现其内的所以抽象方法。大家都知道Java是单继承的,但Java可以实现多个接口,每个接口必须用逗号来分隔,且实现类必须实现其实现的接口中的所有的抽象方法。当然我说的实现接口的是普通方法,如果是个抽象类去实现接口就不用去实现其内的所有抽象方法。    接下来我们讲两个关键字:static 和 final.    static    static关键字表示静态的意思,凡是被他所修饰的均只有一个。static关键字可以用来修饰属性,方法和类。

    static修饰属性无论一个类生成了多少个对象,所有这些对象使用唯一一份静态的成员变量。无论哪一个对象对静态的成员变量做出了改变,都会影响到其他的对象的静态成员变量。

    静态成员变量可以通过类名加点的方式调用(推荐),也可以通过对象名加点的方式调用。例:class A{public static int age;}public class B{public static void main(String[] args){A.age = 1;//类名调用A a = new A();a.age;//对象名调用}}     static修饰方法称为静态方法,静态方法的调用方法和静态成员变量相同,所以我就不说了。需要注意的是静态方法不能被重写,只能被继承。     static所修饰的代码块,被称为静态代码块。当要在Java虚拟机上加载一个时,系统会先执行静态语句块,然后再调用该类的构造方法。不管声明了几个对象,同一个类中的静态代码块只会在系统中加载一次,但构造方法会根据对象的增加而同步增加。静态代码块一般是用来完成一些初始化工作。注意不能在静态方法中访问非静态的成员变量,但可以在非静态的方法中访问静态的成员变量,也就是说静态的只能访问静态的,非静态的可以访问一切。       final

         final关键字的意思是表示终态,final可以用来修饰属性,方法和类。

         final修饰的类表示终态类,即只能用不能被继承。

        final修饰的方法表示终态方法,即只能用不能被重写。

        final修饰的属性表示终态属性,即只能用不能被修改,且必须初始化。

       需要注意的是,当final关键字修饰的是一个引用类型的时候,表示该引用不能再指向其他对象,但其指向的对象内容是可以改变的。

关于抽象类,借口,ststic,final我就先介绍这些吧。

 

热点排行