Java中抽象类和接口两者区别

本文详细介绍了面向对象编程中抽象类和接口的概念及其区别。解释了抽象类的使用场景、特点,包括抽象方法的定义与重写规则。同时,探讨了接口的功能与规范,以及接口属性和方法的默认特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一:抽象类

二:接口

三:接口和抽象类的区别


一:抽象类

  1. 简介
         用abstract修饰的类叫做抽象类。
         
         抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,
         那么等于白白创建了这个抽象类,因为你不能用它来做任何事情。对于一个父类,
         如果它的某个方法在父类中实现出来没有任何意义,必须根据子类的实际需求来进行不同的实现。
         
  2.  抽象类的特点
         ⑴抽象类不能有对象,(不能用new此关键字来创建抽象类的对象)
                   a:创建一个抽象类Animal
                            
                   b:尝试创建Animal对象
                            
         ⑵有抽象方法的类一定是抽象类
                   a:有抽象方法的类一定是抽象类,但是抽象类中不一定有抽象方法
                          
                   b:但是抽象类中不一定有抽象方法
                          
                          
         ⑶抽象类中的抽象方法必须在子类中被重写
                    a:创建一个抽象类Animal
                           
                    b:创建一个子类Cat
                             
         ⑷abstract修饰的方法为抽象方法,此方法不能有方法体(就是什么内容不能有)
                  
                  注意:抽象方法不能有方法体,在方法后面加一个大括号而里面什么都不写也是不行的,
                             编译器会报“abstract methods do not specify a body”这样一个错误。
                    

二:接口

  1. 简介
            接口就是一个规范和抽象类比较相似。它只管做什么,不管怎么做。通俗的讲,接口就是某个事物对外提供的一些功能的声      明,其定义和类比较相似,只不过是通过interface关键字来完成。
  2.  接口的特点
              ⑴接口中的所有属性默认为:public static final ****;并且要有初始化值
                     
                     下面给与初始化值,然后测试一个子类
                      
                      
                      由上可知,虽然我们定义num变量的时候,没有设置final属性,但是通过上面的
                      效果可知num这个变量的值还是不可修改的,默认带有final属性。
              ⑵接口中的所有方法默认为:public abstract ****;              

三:接口和抽象类的区别

               

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值