java中抽象类和普通类的区别在哪?详细解析

BSO 2020-11-27 13:47:45 java常见问答 5431

java作为一门广受使用的编程语言,它所涵盖的知识是非常丰富的。这也是很多人在不断学习java知识的原因。今天一起来了解一些java中关于抽象类的知识吧。

首先,我们需要知道的是,抽象类和具体类是相对的概念。“抽象”是一种存在思想逻辑中的概念,而“具体”是一种可见可触摸的现实对象。简单说,比如“人”比“男人”抽象一点,“动物”又比“人”更抽象一点,而“生物”又比“动物”更抽象。

其实,抽象的概念是由具体概念依其“共性”而产生的,把具体概念的诸多个性排出,集中描述其共性,就会产生一个抽象性的概念。

抽象思维,是人类思维达到高级阶段产生的一种能力,例如,当小孩子思维尚未成熟时,他们只能掌握具体概念,他们在学习代词“你、我、他”时往往遇到困难,因为代词具有较高的抽象性。

总的来说,抽象概念的外延大,内涵小;具体概念的外延小,内涵大。

然后仔细说说,抽象类与普通类

1.普通类可以去实例化调用;抽象类不能被实例化,因为它是存在于一种概念而不非具体。

2.普通类和抽象类都可以被继承,但是抽象类被继承后子类必须重写继承的方法,除非自类也是抽象类。

3.实例代码如下所示:

public class Pet
{
    public void play()
    { //这是宠物类,普通父类,方法里是空的
    }
}
-- -- -- -- -- -- -- -- -- -- -- -- --
public class Cat extends Pet
{ //这是子类,是一个猫类,重写了父类方法
    public void play()
    {
        System.out.println("1、猫爬树");
    }
}
-- -- -- -- -- -- -- -- -- -- -- --
public class Dog extends Pet
{ //这是子类,是一个狗类,重写了父类方法
    public void play()
    {
        System.out.println("2、狗啃骨头");
    }
}
-- -- -- -- -- -- -- -- -- -- -- -- -
public class Test
{
    public static void main(String[] args)
    { //这是测试类,分别调用了子类的不同方法
        Pet p1 = new Cat(); //多典型的多态表现啊,相当的给力
        Pet p2 = new Dog();
        p1.play();
        p2.play();
    }
}
-- -- -- -- -- -- -- -- -- -- -- -
输出结果:
1、 猫爬树
2、 狗啃骨头
-- -- -- -- -- -- -- -- -- -- --

如果,把父类改成抽象类,方法改成抽象方法,那么public void play(); 子类不变,依然重写父类方法,那这个跟普通父类有何区别?

答:

就是为了强制不能实例化,以及强制子类必须实现方法。

以上就是关于java中抽象类和普通类的区别在哪的详细解析了。具体来说还是比较好理解的。如果你想要了解更多java基础知识,敬请关注奇Q工具网。

推荐阅读:

java抽象类怎么继承?实例分享

java抽象类是什么?实例代码展示

java抽象类的特点有哪些?图文详解