什么是抽象类

在Java中,抽象类是一种特殊的类,无法被实例化,只能作为基类或父类来被继承。抽象类意味着它的实例化是不完全的,因为它至少还具有一些抽象方法没有实现。抽象方法是没有具体实现的方法,必须由子类来实现。抽象类主要用于约束和规范子类的相关实现,从而提高代码的复用性和可维护性。

如何定义抽象类

Java中定义抽象类需要使用关键字“abstract”,并且至少包含一个抽象方法。

下面是一个抽象类的例子:

    abstract class Animal{
        private String name;
        public Animal(String name){
            this.name = name;
        }
        public String getName(){
            return this.name;
        }
        public void setName(String name){
            this.name = name;
        }
        //抽象方法
        abstract void animalSound();
    }

在这个例子中,Animal是一个抽象类。它有一个普通的构造函数和getName/setName接口方法,但它还包含一个没有实现的抽象方法animalSound。

如何继承抽象类

在Java中,抽象类只有被继承才能派上用场。当子类实现了所有的抽象方法,它就可以被实例化并使用了。如果子类没有实现所有抽象方法,那么该子类也必须被定义为抽象类。

下面是一个继承抽象类的例子:

    //继承抽象类
    class Cat extends Animal{
        public Cat(String name){
            super(name);
        }
        //实现抽象方法
        public void animalSound(){
            System.out.println("喵喵喵");
        }
    }

在这个例子中,Cat是Animal的子类,并实现了抽象方法animalSound。Cat的实例化对象可以调用Animal类中的接口方法,如setName和getName,也可以调用它自己实现的animalSound方法。