抽象方法和抽象类的使用与注意事项

抽象方法和抽象类的使用

如何使用抽象类和抽象方法:

  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();
    }
复制代码

 

posted @   漁夫  阅读(141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示