三、抽象方法和抽象类
1、什么是抽象方法
如果一个方法用Abstract修饰,这个方法就是抽象方法,抽象只有方法的定义,没有方法的实现。
2、格式
public abstract void save();
3、抽象类
如果一个类用Abstract修饰,这个类就是抽象类,抽象类可以定义普通方法和抽象方法,如果一个类某个方法用Abstract修饰,这个类也抽象类。
4、抽象类的定义
public abstract Class{
//类的属性定义
//普通方法的定义
//抽象方法的定义
//构造方法
}
5、抽象类的继承问题
5.1抽象类可以创建对象,必须重写抽象方法
如果一类继承了抽象类,就必须重写抽象方法,(就是编写抽象类的具体实现)
package ljg.com.cn; //定义一个抽象类 public abstract class Person { public int id; private String name; private String address; //定义一个普通方法 public void eat(){ System.out.println("我中午吃的米饭"); } //抽象方法:只有方法的名称和说明,没有方法的具体实现 public abstract void play(); //能不能创建对象?? //能不能被继承?? public static void main(String[] args) { Person p1=new Person() { @Override public void play() { System.out.println("我是一个爱玩儿的人,天天都想去天津"); } }; p1.eat(); } }
6、狂神:
不能new这个抽象类,只能靠子类去实现它:约束!
抽象类中可以写普通方法
抽象方法必须在抽象类中
抽象的抽象:约束
抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super()或super(参数列表)调用抽象类中的构造方法。
抽象类的意义
1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。
2.当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。