java中的抽象类

来源:互联网 发布:胸肌锻炼方法 知乎 编辑:程序博客网 时间:2024/05/24 02:18

抽象类:是指类由abstract修饰,最大特点是包含抽象方法,抽象方法是只声明而未实现(没有方法体的方法)。抽象方法定义由abstract完成,抽象类由abstract关键字声明

关于抽象类需要注意一下几点:

1,抽象类中的抽象方法只声明,不实现

2,子类在继承抽象类时(子类为非抽象类)必须继承抽象类等的所有抽象方法。

3,抽象类中可以没有其他非抽象方法,但是反过来含有抽象方法的类必然是抽象类。

4,抽象类对象可以使用对象的向上转型方式,通过子类来进行实例化操作。

abstract class A{

  private String info="Hello World";

  public void print(){

  System.out.println(info);

  }

 public abstract void get();

}

下例为错误的使用抽象类:

class B{

puclic static void main(){

A a=new A()      // 抽象类不能直接实例化 

}

}

正确的使用:

class C extends A{

puclic static void main(args[]){

A a=new C();

a.get();

}

puclic abstract void get(){

System.out.println("Hello ");

}

}

Result: Hello


具体应用中抽象类对应使用的设计模式是模板模式

例如:

abstract class Animal{

public abstract void eat(); 

public abstract void sleep();

public abstract void play();

}

class Dog{

public  void eat(){

  System.out.println("狗吃饭.......");

}

public  void sleep(){

System.out.println("狗睡觉......");

}

public void play(){

}

}

 class People{

public  void eat(){

System.out.println("人吃饭......");

}

public void sleep(){

System.out.println("人在睡觉....");

}

public void play(){

System.out.println("人在玩......");

}

}

例外关于抽象类的模板设计模式的典型例子就是servlet

servlet继承HttpServlet,就会继承doGet()和doPost()方法

0 0
原创粉丝点击