JAVA笔记(七)-----抽象类
抽象类特点:
1.抽象方法一定在抽象类中(抽象方法没有方法体)
2.抽象方法和抽象类都必须被abstract关键字修饰
3.抽象类不可以用new创建对象,因为调用抽象方法没有意义
4.抽象类中的方法必须由子类复写其所有抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。(子类也要声明为 abstract)
5.抽象类也可以有非抽象方法,但非抽象类一定不能有抽象方法
1 abstract class student 2 { 3 abstract void study(); 4 void sleep() 5 { 6 System.out.println("abstract"); 7 } 8 }
抽象类比一般类多了个抽象函数,但不可以实例化(创建对象)
若抽象类中全是抽象函数无其他方法,可以申明为接口
特殊:抽象类中,可以不定义抽象方法,这样做仅仅是为了不让该类创建对象
模版方法设计模式:
在定义功能时,功能部分是不确定的,而确定的部分在使用不确定的部分,那么这时将不确定部分暴露出来,由该类的子类去完成
例:
1 abstract class Student 2 { 3 public final void study()//加上final防止被子类覆盖 4 { 5 String classse = "cs"; 6 read(); 7 } 8 9 public abstract void read(); 10 11 } 12 13 class Kid extends Student 14 { 15 public void read() 16 { 17 System.out.println("read book"); 18 } 19 }

浙公网安备 33010602011771号