1 为什么需要抽象类

当父类的一些方法不能确定时候,用abstract关键字来修饰该方法【抽象方法】 用abstract修饰类 就称为【抽象类】

//这就是一个抽象类

abstract class Animal

{

     String name;

     int age;

     //动物会叫

     abstract public void cry();

     

     

}


//当一个类继承的父类是抽象类的话

//需要我们把抽象类类中的 所有抽象方法全部实现

class Cat extends Animal

{

     public void cry()

     {

            //do nithing ....

     }

}


2 抽象类不能被实例化。

  抽象类不一定要包含abstract抽象方法。

  一旦类包含了abstract方法,则这个类必须声明为abstract。

  抽象方法不能有主体。

  抽象类中可以有实现了的方法。


二 接口


1接口不能被实例化

2接口中的所有方法都不能有主体 也就是说 接口中的所有方法不能实现

3一个类中可以实现多个接口。

4接口中可以有变量【但变量不能用private 和protect修饰】

a 接口中的变量,本质上都是static,而且是final,不管你加不加static修饰

b 在java开发中,我们经常把常用的常量,定义在接口中,作为全局变量使用。访问形式;接口名.变量名


5一个接口不能继承类,但是可以继承别的接口。


接口就是给出一些没用内容的方法,封装在一起,到某个类要使用的时候,根据具体情况吧这些方法写出来。语法:

  class 类名 implements 接口 

{

     方法;

     变量;

}


小结;接口是更加抽象的抽象的类,抽象类中的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低耦合的设计思想。




public class Test1 {

     

     

     public static void main (String args[])

     {

            Computer computer = new Computer ();

           Cemera camera1 = new Cemera();

           computer.useUsb(camera1);

    }

}


//usb 接口

interface Usb

{

     int a=1;

     public void start();

     public void stop();

     

}


interface kkk

{

     public void cry();

}


//编写照相机类

//当一个类实现了一个接口,就应该吧这个接口的所有方法统统实现

class Cemera implements Usb,kkk

{

     public void start()

     {

           System. out.println( "我是相机开始工作了" );

           

     }

     public void stop()

     {

           System. out.println( "我是相机停止工作了" );

     }

     public void cry()

     {

           System. out.println( "我是相机停止工作了" );

     }

}


class Computer

{

     public void useUsb(Usb usb)

     {

           usb.start();

           usb.stop();

     }

}