abstract关键字/抽象类

abstract关键字

abstract修饰的类称为抽象类,修饰的方法,称为抽象方法

abstract可以修饰哪些

抽象类

1.抽象类不能有实例
2.抽象类可以有普通的构造器,方法,属性
3.抽象类就是用来被继承的

抽象方法

1.抽象方法不能有方法体,
2.抽象方法的必须被子类重写,若没有重写,就将子类也设定为抽象类
3.拥有抽象方法的类必为抽象类
4.抽象类中可以没有抽象方法,但无抽象方法的抽象类没有意义

abstract不能修饰哪些

1.不能修饰属性,代码块,构造器
2.abstract不能修饰私有的方法,因为子类无权访问父类的私有方法,更不能重写,而抽象类就是用来被继承的,无意义了。
3.abstract不能修饰静态方法,静态方法不能被重写,而抽象方法目的在于重写。
3.abstract不能修饰final方法,因为funal方法不能被重写

抽象类应用:模板模式

抽象类是模板模式的一种设计,抽象类作为多个子类的一个通用模板,子类在抽象类的基础上行了扩展,改造,但是子类总体上还保留了抽象类的行为。

  • 解决问题:当功能一部分是确定的,一部分是不确定我们可以将不确定的部分暴露出去,让子类去实现
  • 应用:junit单元测试,数据库访问的一个封装,spring中的JDBCtemplete等等

步骤

1.创建一个抽象类

 abstract class Game(){
 }

2.创建final模板方法

  abstract class Game{
  	public final void startgame();
  	public final void endgame();
 }

3.扩建模板类的实体类,重写抽象方法

class Minecraft extends Game{
 @Override
   void endgame() {
      System.out.println("Minecraft Game Finished!");
   }

 @Override
   void startgame() {
      System.out.println("Minecraft Game Started.");
   }
}
发布了30 篇原创文章 · 获赞 13 · 访问量 1117

猜你喜欢

转载自blog.csdn.net/qq_30738155/article/details/104196435
今日推荐