抽象方法和抽象类的使用与注意事项
抽象方法和抽象类的使用
如何使用抽象类和抽象方法:
1.不能直接创建new抽象类对象
2.必须用一个子类来继承抽象父类
3.子类必须覆盖重写父类当中所有的抽象方法。
覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号
4.创建子类对象进行使用
父类
public abstract class Animal { //这是一个抽象方法,代表吃东西,但是具体吃什么(大括号的内容)不确定 public abstract void eat(); //这是普通的成员方法 public void method(){ } }
子类
public class Cat extends Animal{ @Override public void eat() { System.out.println("猫吃老鼠"); } }
抽象方法和抽象类的注意事项
一个抽象类不一定含有抽象方法,
只要宝成抽象方法所在的类是抽象类,即可
这样没有抽象方法的抽象类,也不能直接创建对象,在一些特殊场景下有用途
关于抽象类的使用,一下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背
1.抽象类不能创建对象,如果创建,编译无法通过而报错,只能创建其非抽象子类的对象
2.抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
3.抽象类中 ,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
4.抽象类的子类,必须重写抽象方法父类中所有的抽象方法,否则,编译无法通过而报错,除非该子类也是抽象类
父类
//最高的抽象父类 public abstract class Animal { public abstract void eat(); public abstract void sleep(); }
子类
public abstract class Dog extends Animal{ @Override public void eat() { System.out.println("狗吃骨头"); } }
孙子类
public class Dog2ha extends Dog{ @Override public void sleep() { System.out.println("乌拉!!"); } }
public class DogGolden extends Dog { @Override public void sleep() { System.out.println("呼呼呼......"); } }
测试类
public static void main(String[] args) { // Animal animal = new Animal();//错误 // Dog dog = new Dog();//错误,这也是抽象类 Dog2ha dog2ha = new Dog2ha();//这是普通类,可以直接new对象 dog2ha.sleep(); dog2ha.eat(); System.out.println("=============="); DogGolden dogGolden = new DogGolden(); dogGolden.eat(); dogGolden.sleep(); }

浙公网安备 33010602011771号