java基础------抽象类和接口

本文阐述了抽象类和接口的概念、区别以及应用场景,详细解释了抽象类与接口的使用方式,包括它们在继承、方法定义及实现上的差异。重点讨论了如何在不同情况下选择使用抽象类还是接口,提供了实例代码帮助理解。

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

什么是抽象类:

用abstract来修饰的类就称为抽象类,用abstract来修饰的方法成为抽象方法,子类继承抽象类的时候必须实现父类的抽象方法,(抽象类可以没有抽象方法,但是如果抽象类没有抽象方法,或者没有其他类继承于它,那么抽象类就失去了意义)

 

什么时候用抽象类:

   当具体实现需要子类来完成的时候,就可以用抽象类。

 

抽象类和普通类的区别:

1、抽象方法必须是public或者protected的,如果为抽象方法用private修饰,则该方法不能被子类实现,便无法实现该方法),默认的情况下用public。

2、抽象类无法创建对象;

3、子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为抽象类。

 

什么是接口

接口是一些方法特征的集合,接口比抽象类更抽象,接口中所以方法都没有具体实现,都由其实现类来实现,并且一个类可以实现多个接口,如果是普通类则必须实习该接口的所有方法,如果是抽象类则不必.

从更深层次的角度来说,接口是定义与实现的分离,通过面向接口编程可以降低耦合


抽象类和接口的区别

  1抽象类中的可以有非抽象方法,而接口中只能存在抽象方法;

 2抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

 3接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

 4一个类只能继承一个抽象类,而一个类却可以实现多个接口。

如何选择是使用抽象类还是接口

如果需要包含一些具体实现的那么就选择抽象类,如果只是定义规范那就用接口


//使用抽象形式定义Test:
abstract class Test{
     abstract void test1();
     abstract void test2();
}

//使用接口形式定义Test:
interface Door{
   void test1();
   void test2();
} 

//在抽象类中可以有普通方法
abstract class Test{
   abstract void test1();
   abstract void test2();
   public void test3(){
        System.out.println(“test3”);
   }
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值