首页 > 其他分享 >抽象类和普通类的区别

抽象类和普通类的区别

时间:2023-04-21 11:33:44浏览次数:24  
标签:区别 子类 普通 抽象 抽象类 方法 类中

抽象类和普通类的区别

抽象类和普通类都是类的概念,在面向对象编程中用于组织和管理代码。它们的主要区别在于抽象类有一些特殊的属性和限制,这些属性和限制在普通类中是没有的。
具体来说,抽象类是一种特殊的类,它不能被实例化。也就是说,你不能直接使用 new 关键字来创建抽象类的对象。相反,你需要创建一个抽象类的非抽象子类,才能使用这个类来创建对象。这是因为抽象类中可能包含抽象方法,这些方法必须由子类来实现才能正常使用。
抽象类中可以包含非抽象方法和属性,这些方法和属性可以被子类继承和使用。抽象类通常用于表示某个通用的概念或者模板,但是它本身并不是一个具体的实体,而是一个抽象的概念。例如,我们可以定义一个抽象类 Animal,用于表示各种动物的共性。这个类中可以包含各种非抽象的方法和属性,如 eat()、sleep()、runSpeed 等等。但是由于它是抽象的,我们并不能直接创建它的对象。相反,我们需要定义具体的子类来表示不同种类的动物,比如 Dog、Cat、Bird 等等,这些子类中实现了 Animal 类中的抽象方法,从而实现了具体的功能。
普通类没有抽象类的限制,它可以被直接实例化,并且不需要子类来实现它的抽象方法。普通类通常用于表示具体的实体或者对象,例如 Person、Car、Book 等等。这些类中可以包含各种非抽象的方法和属性,用于表示这些实体或者对象的特征和行为。普通类通常不会用来指定通用的模板或者概念,因为这些类本身就是具体的实体或者对象。
总结来说,抽象类和普通类的区别在于抽象类是一种不能被直接实例化的类,它包含有抽象方法和需要子类实现的方法;而普通类可以被直接实例化,并且不需要子类来实现其方法。

标签:区别,子类,普通,抽象,抽象类,方法,类中
From: https://www.cnblogs.com/livebetter/p/17339792.html

相关文章

  • text() html() val() innerHTML的区别
    参考text()用于html元素文本内容的存取html()不仅可以用于文本内容的存取,还可用于html内容的存取val()用于input元素内容的存取    html()innerHTML的区别html()方法设置或返回被选元素的内容。当该方法用于返回内容时,则返回第一个匹配元素的内容。当该方法用......
  • mysql索引--普通索引,唯一索引,主键索引,参照完整性约束,数据完整性约束
    --方法1:createindex--对employee表的员工部门号列创建普通索引depart_ind--createindexdepart_indonemployees(员工部门号);--对employee表的姓名和地址列创建复合索引ad_ind;--createindexad_indonemployees(姓名,地址);--对departments表的部门名称列......
  • 面向过程和面向对象的区别
    面向过程和面向对象的区别面向过程思想:步骤清晰简单,第一步做什么,第二部做什么.....面向过程适合处理一些较为简单的问题面向对象思想:物以类聚,分类的思维模式,思考问题首先会细分问题,并将细分之后的问题进行分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进......
  • Oracle 开窗函数 三个排序函数的区别
    1.ROW_NUMBER2.RANK3.DENSKRANK这三个函数都是依托窗口函数进行的分组后的排序,对于排序的特点有些细节的区别ROW_NUMBER()就是简单地按照Partitionby要分组的字段排序,若orderby后的字段值相同会区分出大小(原则不详),整体来说是的由1到N的排序selectt.*,row_number()over......
  • java-普通内部类和静态内部类区别
    静态内部类相对与外部类是独立存在的,在静态内部类中无法直接访问外部类中的变量、方法。如果要访问的话,必须要new一个外部类的对象,使用new出来的对象来访问。但是可以直接访问静态变量,调用静态的方法。普通内部类作为外部类一个成员而存在,在普通内部类中可以直接访问外部类属性......
  • for与foreach区别
    https://www.cnblogs.com/HuiH/p/11665536.html总结:foreach不支持在循环中添加删除操作,因为在使用foreach循环时数组就已经被锁定不能修改,否则会报出java.util.ConcurrentModificationException异常。foreach适用于只是进行集合或数组遍历,for则在复杂的循环中效果更......
  • Socks5代理和IP代理的区别及应用场景
      Socks5代理和IP代理都是网络代理服务,它们可以帮助用户在访问互联网时隐藏真实IP地址,从而增强网络安全和隐私保护。但是,这两种代理服务之间有一些重要的区别和不同之处。首先,Socks5代理是一种传输层代理,而IP代理是一种网络层代理。这意味着Socks5代理可以处理更广泛的协议,包括......
  • JS中定时执行,setTimeout和setInterval的区别,以及l解除方法
    评:setTimeout(Expression,DelayTime),在DelayTime过后,将执行一次Expression,setTimeout运用在延迟一段时间,再进行某项操作。setTimeout("function",time)设置一个超时对象setInterval(expression,delayTime),每个DelayTime,都将执行Expression.常常可用于刷新表达式.set......
  • CentOS赋予一个普通用户root权限
    评:第二种方法Linux的普通用户在安装一些东西或者执行一些命令的时候,终端会提示权限不够。那么怎么才能给用户赋予root权限呢?当然,就算赋予了root权限,也和root用户还是有区别的,因为只能执行root规定好的一些操作命令。1、添加用户,首先用adduser命令添加一个普通用户,命令如下:#a......
  • ibatis中 $ 于 # 的 区别?
    评:ibatis中$于#的区别?一个项目中在写ibatis中的sql语句时,whereuser_idin(#user_id_list#),运行时总是不行,后来上网查了查,才知道这里不该用#,而应该用$,随即查了下#与$的区别.总结如下:1.#是把传入的数据当作字符串,如#user_id_list#传入的是1,2,则sql语句生成是......