首页 >> 编程狮 >> 后端

抽象类abstract

  • 后端
  • 2025-07-15
  • 点击次数:

一、抽象类的特点

1、abstract修饰的类叫做抽象类,abstract修饰的方法叫做抽象方法。

2、abstract修饰的抽象方法必须在子类里面并实现,前提是子类不是抽象类。

3、抽象类一定是父类。

4、只有抽象类当中才有抽象方法,普通类当中不能有抽象方法。

5、抽象类当中不一定非要写抽象方法,也可以写普通方法。

6、抽象类不能被实例化(不能被创建对象),只能使用多态。

7、final和abstract不能同时使用,final修饰的类不能被继承,final修饰的方法不能被重写。

8、abstract修饰的方法不能被static修饰,static修饰的方法属于类。

9、抽象方法不能使用private修饰符进行修饰。

10、抽象类有构造器,但是抽象类的构造器不能创建对象,抽象类目的是为了完成一些必要性初始化操作。

二、代码示例

未使用抽象方法

public  class  Animal{

    public  void run(){

        System.out.println("所有动物都会跑");

    }

    public  void  fly(){

        System.out.println("飞起来");

    }

}


public  class Cat  extends  Animal{

    public  void  run(){

        System.out.println("所有的猫都会跑");

    }

}


public  class Dog extends  Animal{

    public  void run(){

    System.out.println("所有的狗都会跑");

    }

}

public class  Test{

    public static void main(String[] args){

    Animal  a = new Dog();

    a.run();//输出 所有的狗都会跑

    }

}

使用抽象方法,添加了构造器

public  abstract class Animal{

    private String  name;

    public  Animal(String name){

    this.name=name;

    }

    public String getName(){

        return  name;

    }

    public abstract void run();

    public void fly(){

    System.out.println("飞起来");

    }

}


public class  Cat  extends Animal{

    public Cat(String name){

        super(name);//使用super调用父类构造器传初始值

    }

    public void run(){

    System.out.println("所有的猫都会跑");

    }

}

public class Dog extends Animal{

    public Dog(String name){

        super(name);

    }

    public void run(){

        System.out.println("所有的狗都会跑");

    }

}

public class Test{

    public static void main(String[] args){

        Animal a = new Dog("aa");

        a.run();//输出 所有的狗都会跑

        System.out.println(a.getName());//aa

    }

}

标签: