抽象类与接口类的区别
2009-12-24 15:20
288 查看
1.interface Animalss{}//空接口 2.// 接口的例子 3.interface Animals 4.{ 5. void makeSounds(); 6. void moves();/*接口前面的关键字只能为abstract或public*/ 7. /*接口里只允许声明方法,不允许有实现,因此下面这个实现了的方法不允许出现在接口定义中*/ 8. /*void eats() 9. { 10. eats code 11. }*/ 12. 13.} 14.// 抽象类的例子 15.abstract class Animal 16.{ 17. /*如果只是声明方法没有实现,必须加关键字"abstract"*/ 18. abstract void makeSound(); 19. /*可以有方法的实现,只要有一个抽象方法,此类就满足抽象类的条件*/ 20. void move() 21. { 22. /*movecode*/ 23. } 24. /*可以是空方法,子类可复写或者重载*/ 25. void eat(){} 26.} 27.//以下是一个既是继承了抽象类的子类,又是实现了接口的实现类的例子 28.class Dog extends Animal implements Animals,Animalss/*抽象类不支持多继承,而接口支持*/ 29.{ 30. /*实现了抽象父类唯一的抽象方法makeSound(),自己就不再是抽象类了,另外两个方法move()和eat()直接从父类继承*/ 31. void makeSound() 32. { 33. /*make sound code*/ 34. } 35. /*实现Animals中的方法,注意实现的方法的权限不能低于接口中声明的权限,而接口中声明的方法的权限均为public,所以在实现类的方法前要加关键字public*/ 36. public void makeSounds() 37. { 38. /*make sounds code*/ 39. } 40. void moves() 41. { 42. /*moves code*/ 43. } 44.}
相关文章推荐