抽象类与接口的区别

对抽象类和接口的总结
这个例子偷了下懒,把接口和抽象类的名字取得很像,容易混淆,有空会再修改一下的:>

by_EvanYoung :>

[code]interface Animalss{}//空接口
// 接口的例子
interface Animals
{
void makeSounds();
void moves();/*接口前面的关键字只能为abstract或public*/
/*接口里只允许声明方法,不允许有实现,因此下面这个实现了的方法不允许出现在接口定义中*/
/*void eats()
{
eats code
}*/

}
// 抽象类的例子
abstract class Animal
{
/*如果只是声明方法没有实现,必须加关键字"abstract"*/
abstract void makeSound();
/*可以有方法的实现,只要有一个抽象方法,此类就满足抽象类的条件*/
void move()
{
/*movecode*/
}
/*可以是空方法,子类可复写或者重载*/
void eat(){}
}
//以下是一个既是继承了抽象类的子类,又是实现了接口的实现类的例子
class Dog extends Animal implements Animals,Animalss/*抽象类不支持多继承,而接口支持*/
{
/*实现了抽象父类唯一的抽象方法makeSound(),自己就不再是抽象类了,另外两个方法move()和eat()直接从父类继承*/
void makeSound()
{
/*make sound code*/
}
/*实现Animals中的方法,注意实现的方法的权限不能低于接口中声明的权限,而接口中声明的方法的权限均为public,所以在实现类的方法前要加关键字public*/
public void makeSounds()
{
/*make sounds code*/
}
void moves()
{
/*moves code*/
}
}[/code][b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值