java 抽象类 接口

抽象类的理解:抽象类就是比普通的类多了一个abstract修饰符,如果一个类里面有抽象的方法那么这个类一定要用abstract修饰,抽象类里可以没有抽象方法。抽象类可以有构造函数,因为类是用来继承的子类会调用父类的构造函数,默认是super(),如果抽象类中定义了有参数的构造函数,那么子类一定要定义个和抽象类中的构造函数一直的构造函数

抽象类是不能够实例化的类: 它的作用就是产生子类的同时给于子类一些特定的属性和方法.
优点:如果多个类继承了此类,当修改抽象类的属性时,可以同时修改多个。
抽象类是一些抽象概念上的东西,是我们设计人员独立出来而现实不存在的东西。抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。 抽象类就如他的名字一样是抽象的,他里面的方法都是没有方法体的,也就是没有实际的实现代码,而实例化后的对象是类的一个实体对象,是可以调用他的方法完成一些功能的,一个抽象类的方法没有方法体(半成品,呵呵),当然不能实例化了。
从设计的角度看:抽象类在公司通常不是由程序员定义的,而是由项目经理或者某个模块得设计人员。设计抽象类得原因通常只有一个:为了规范方法名。咱们都知道,抽象类必须要继承,不然没法用,作为模块设计者,可以把让底层程序员直接用得方法直接调用,而一些需要让程序员覆盖后自己做得方法则定义称抽象方法。
通俗的讲,定义了一个汽车的抽象类,可是你不可以实例化它,因为你不知道它是轿车,客车,F1赛车。
抽象类和接口区别

  1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
  2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。
  3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。 
  4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。
  5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
  6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。 
  7.接口中的方法默认都是 public,abstract 类型的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值