黑马程序员----------------------抽象类与接口

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------

抽象类:

是指高度的抽象提取共性部分,只声明方法的存在,而不去具体的实现它的类,是一个概念性的描述。

例如:宠物类:

public abstract class Pet {
private String name; //宠物的名字
private String sex; //宠物的性别
private int health; //宠物的健康值
abstract void tohospital(); //宠物看病

}

}

在calss关键字之前加一个abstract关键字,比如这段代码中abstract class Pet,那么抽象方法就是只声明方法的存在,并不给出具体的方法实现。

抽象方法的语法:

就是在方法返回值前加关键字 abstract 而且没有{}括号及方法体内容,由分号结束;

注意事项:

1.抽象类不能被实例化

2.子类如果不是抽象类,则必须重写抽象类中的全部抽象方法。

3.abstract修饰符不能和final修饰符一起使用

4.abstract修饰的抽象方法没有方法体

5.private关键字不能修饰抽象方法

接口:

简单地说,接口是一个不能实例化,且只都拥有抽象方法的类型(接口不使用class关键字定义,不等于类)

对比抽象类和接口:

区别:抽象类使用abstract声明,接口使用interface声明,抽象类除了抽象方法,还可以拥有普通方法,接口中只有抽象方法。

相同:都不能实例化;

为什么需要抽象类?

抽象类可以将已经实现的方法提供给其子类使用,使代码可以复用;

同时抽象类中的抽象方法,保证了子类还具有自身的独特性。

为什么需要接口:

摘取代码中变化的行为,形成接口。

接口是针对行为而言的(重点)

使用接口可以很好的隐藏代码的细节,从而解决代码维护不易的问题

总结:1,抽象类便于复用  2,接口便于代码维护

抽象类是对对象的抽象,接口是对方法的抽象

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! --------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值