飞天茅台|Java普通类和抽象类有哪些区别?

飞天茅台|Java普通类和抽象类有哪些区别?

在回答问题之前 , 我们首先了解一下为什么会有抽象类这个东西?
在面对对象的概念里 , 所有的对象都是通过类来描述的;但是反过来讲 , 并不是所有类都是来描述对象的 。 如果一个类中没有足够的信息来描述一个具体的对象 , 这样的类我们称之为抽象类 。
举个例子 , 我们谈到猫和狗的时候 , 就能知道猫和狗大致的模样 , 因为猫和狗就是普通类 , 能够描述猫狗具体的对象(狸花猫 , 橘猫 , 田园犬 , 哈士奇这些就是猫狗类描述的具体对象);但是 , 我们说动物的时候 , 你能知道我说的是哪种动物吗?这个时候 , 动物就是抽象类 。
接下来 , 我们来聊下两者之间的区别?

  1. 【飞天茅台|Java普通类和抽象类有哪些区别?】语法规则上抽象类前要加abstract关键字修饰
  2. 抽象类存在的目的就是被子类继承 , 所以不能实例化 , 也就是不能创建对象
  3. 抽象类的子类必须要重写父类的抽象方法 , 普通类看自己需要重写
  4. 抽象类不一定有抽象方法 , 反过来有抽象方法的一定是抽象类 , 比较拗口多琢磨下
在回答问题之前 , 我们首先了解一下为什么会有抽象类这个东西?
在面对对象的概念里 , 所有的对象都是通过类来描述的;但是反过来讲 , 并不是所有类都是来描述对象的 。 如果一个类中没有足够的信息来描述一个具体的对象 , 这样的类我们称之为抽象类 。
举个例子 , 我们谈到猫和狗的时候 , 就能知道猫和狗大致的模样 , 因为猫和狗就是普通类 , 能够描述猫狗具体的对象(狸花猫 , 橘猫 , 田园犬 , 哈士奇这些就是猫狗类描述的具体对象);但是 , 我们说动物的时候 , 你能知道我说的是哪种动物吗?这个时候 , 动物就是抽象类 。
接下来 , 我们来聊下两者之间的区别?
  1. 语法规则上抽象类前要加abstract关键字修饰
  2. 抽象类存在的目的就是被子类继承 , 所以不能实例化 , 也就是不能创建对象
  3. 抽象类的子类必须要重写父类的抽象方法 , 普通类看自己需要重写
  4. 抽象类不一定有抽象方法 , 反过来有抽象方法的一定是抽象类 , 比较拗口多琢磨下
总结:抽象类存在的目的是为了被子类继承 , 而普通类则是为了实例化 , 两者的区别主要就是用途的区别 , 其他都是一些语法规则上的差异 。
\uD83D\uDE4F如果内容对您有帮助 , 希望您能点赞收藏加关注 , 激励作者创作出更加优质内容 , 感谢!\uD83D\uDE4F