关于抽象类和接口

       所谓的抽象类指定义有抽象函数的类。定义抽象函数的关键字是abstract,抽象函数的特点就是只有函数的声明,没有函数的定义。抽象类只是提供一个框架,更有利于程序的组织。就如动物类为列

1 public abstract class testAnimal {
2     
3     public abstract void run();
4      /*
5     public void breath(){
6         System.out.println("动物会呼吸");
7     }
8 */
9 }

不同的动物有不同的跑,所以定义为抽象类。具体实现如狗类:

class Dog extends testAnimal{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("狗跑");
    }
    
}

在里面要求run方法必须重写。因此增加了程序的灵活性。当然在抽象类中也可以定义非抽象函数,只要是含有一个抽象函数的类就叫做抽象类,抽象方法必须重写。

public static void main(String[] args){
        Dog dog = new Dog();
        dog.run();
        dog.breath();
    }

 

二:接口

接口中只能有常量和抽象函数,即使没有申明,系统也会自动默认,因此接口只是提供一个框架,实现都在其子类当中。

package cn.java.testAbstractClass;

public interface Animal {
    
        int MAX_SPEED=10;
        
         public void run();   //这里即使没有申明为抽象函数,但是系统自己会默认为抽象的在后面的定义中必须重写
         
     
}

class Dog implements Animal{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("狗跑!!!");
    }    
    
}

 

posted @ 2014-01-23 10:00  只要出发、就会到达  阅读(112)  评论(0)    收藏  举报