抽象

1抽象类和抽象方法

1.1抽象方法

Java中使用关键字abstract来声明抽象方法和抽象类。

abstract class 类名字 { 
public abstract void 方法名();
}

 

1.2抽象类注意事项(5点)

  1. 一个抽象类里可以有抽象方法,也可以没有抽象方法,不建议抽象类里不定义任何抽象方法的行为。

    abstract class Test {
       public void test(){}
    }

     

  2. 如果一个类里有了抽象方法,那么这个类必须要声明为抽象类。

    abstract class Test{
       public abstract void demo();  // 只要有了抽象方法,那么这个类必须要抽象
    }

     

  3. 抽象类不能直接创建对象,如果一定要创建,需要实现(重写)抽象方法。

    class Test {
       public static void main(String []args) {
           // Animal animal = new Animal(); 报错,抽象类不能直接创建对象
           
           // 如果要创建对象,必须要实现抽象类里的所有抽象方法
           Animal animal = new Animal(){  
               public void shout(){
                   System.out.println("动物正在叫");
              }
          };
      }
    }
    abstract class Animal{
       public abstract void shout();
    }

     

  4. 通常情况下,我们会创建一个继承抽象类的子类,在子类里实现所有的抽象方法,然后去创建子类对象。

    public class Test {
       public static void main(String[] args) {
           Dog d = new Dog();
      }
    }
    abstract class Animal {
       public abstract void shout();
       public abstract void eat();
    }
    class Dog extends Animal {
       @Override
       public void shout() {
           System.out.println("小狗正在汪汪汪");
      }
       @Override
       public void eat() {
           System.out.println("小狗正在啃骨头");
      }
    }

     

  5. 如果子类没有实现父类所有的抽象方法,那么这个子类也需要被定义成为抽象的。

    abstract class Animal {
       public abstract void shout();
       public abstract void eat();
    }
    abstract class Dog extends Animal {
       @Override
       public void shout() {
           System.out.println("小狗正在汪汪汪");
      }
    }

1.3abstrct关键字冲突

  1. abstract和final不能一起修饰方法和类

  2. abstract和static不能一起修饰方法

  3. abstract和native不能一起修饰方法

  4. abstract和private不能一起修饰方法

posted @   灵泽pro  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示