抽象类和接口

1. 抽象类

在解决实际问题时,一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理。
在Java语言中设置抽象类不可以实例化对象。
抽象类的语法如下:

  public abstract class Test{
      abstract void testAbstract();  //定义抽象方法
}

使用abstract关键字定义的类称为抽象类,而使用这个关键字定义的方法称为抽象方法。抽象方法没有方法体,这个方法没有任何意义,除非它被重写,而承载这个抽象方法的抽象类必须被继承,实际上抽象类除了被继承之外没有任何意义。
抽象类使用实例:
Animal类

package  abstra;

public  abstract class Animal {

    public abstract void eat();   
  //抽象类中可以包含成员变量和成员常量,和成员方法(包括抽象方法、非抽象方法、构造方法等)
}

Cat类

package abstra;

public class Cat extends  Animal{
    public  void  eat()
    {
        System.out.println("Cat");
    }
}

AnimalDemo类

package abstra;

public class AnimalDemo {
    public static void main(String[] args) {
        Animal a=new Cat();
        a.eat();  //调用Cat中重写的eat方法。
    }
}

2.接口

接口简介:接口是抽象类的延伸,可以将它看作是纯粹的抽象类,接口中的所有方法都没有方法体。接口使用interface关键字进行定义,其语法如下:

  public interface drawTest{
  void draw();  //接口内的方法,省略abstract关键字
}

一个类实现一个接口可以使用implements关键字,代码如下:

    public class Parallelogram extends Quadrangle implements drawTest{
      ...//
  }

PS:在接口中定义的方法必须被定义为public或abstract形式,其他修饰权限不被Java编译器认可,即使不将该方法声明为public形式,也是public.
在接口中定义的任何字段都自动是static和final的。

实例:

interface  drawTest //定义了一个接口drawTest()
{
    public  void  draw();
}

//定义平行四边形类,继承四边形类,并实现drawTest接口
class  ParallelogramgleUseInterface extends QuadrangleUseInterface implements  drawTest{
    public  void  draw()
    {
        System.out.println("平行四边形");
    }
    void doAnyThing()
    {
        //语句块
    }
}
//正方形类,继承四边形,实现drawTest接口
class  SquareUseInterface extends QuadrangleUseInterface implements drawTest{
    public  void draw()
    {
        System.out.println("正方形");
    }
    void doAnyThing(){
        //语句块
    }
}
public class QuadrangleUseInterface {
      void  doAnyThing()
    {
        //some sentence
    }

    public static void main(String[] args) {
        drawTest[] d={new SquareUseInterface(),new ParallelogramgleUseInterface()};
        for (int i=0;i< d.length;i++){
            d[i].draw();
        }
    }
}
/*
正方形
平行四边形
 */

一般Java权限修饰符大小等级是 public >protected >缺省>private

posted @ 2021-12-21 23:44  hanqi  阅读(148)  评论(0)    收藏  举报