java,抽象类与接口的区别

迈不过友情╰ 2022-06-17 06:22 414阅读 0赞
  1. /**
  2. * Created by liuyazhou on 2017/4/11.
  3. */
  4. public interface ZooInterface1 {
  5. //接口是公开的,不能含有私有变量或方法,
  6. //方法只要是声明即可
  7. void ZooInterface1Fun1();
  8. }
  9. /**
  10. * Created by liuyazhou on 2017/4/10.
  11. */
  12. public abstract class Animal extends Zoo{
  13. //抽象类可以含有私有变量
  14. private Integer animalInteger1;
  15. //抽象类可以含有私有方法,此时要有函数体
  16. private void Run(){
  17. System.out.println("Run");
  18. }
  19. public abstract void cry();
  20. public abstract void eat();
  21. }
  22. /**
  23. * Created by liuyazhou on 2017/4/10.
  24. */
  25. public class Cat extends Animal {
  26. @Override
  27. public void cry() {
  28. System.out.println("猫哭...");
  29. }
  30. @Override
  31. public void eat() {
  32. }
  33. @Override
  34. public void zooFun1() {
  35. System.out.println("Cat zooFun1....");
  36. }
  37. @Override
  38. public void ZooInterface1Fun1() {
  39. }
  40. }
  41. /**
  42. * Created by liuyazhou on 2017/4/10.
  43. */
  44. public class Dog extends Animal {
  45. @Override
  46. public void cry() {
  47. System.out.println("狗哭...");
  48. }
  49. @Override
  50. public void eat() {
  51. }
  52. @Override
  53. public void zooFun1() {
  54. System.out.println("Dog zooFun1....");
  55. }
  56. @Override
  57. public void ZooInterface1Fun1() {
  58. }
  59. }
  60. /**
  61. * Created by liuyazhou on 2017/4/10.
  62. */
  63. public abstract class Zoo implements ZooInterface1 {
  64. public abstract void zooFun1();
  65. }
  66. /**
  67. * Created by liuyazhou on 2017/4/11.
  68. */
  69. public interface ZooInterface1 {
  70. //接口是公开的,不能含有私有变量或方法,
  71. //方法只要是声明即可
  72. void ZooInterface1Fun1();
  73. }
  74. public class Main {
  75. public static void main(String[] args) {
  76. Animal cat = new Cat();
  77. Animal dog = new Dog();
  78. cat.cry();
  79. dog.cry();
  80. cat.zooFun1();
  81. dog.zooFun1();
  82. }
  83. }
  84. 输出:
  85. 猫哭...
  86. 狗哭...
  87. Cat zooFun1....
  88. Dog zooFun1....
  89. 1 接口不是类,抽象类是不完整的类 2接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的 3 一个类可以实现多个接口,但只能继承一个超类 4 抽象类的是对对象的抽象,接口是对行为的抽象 5 抽象类的设计师自底向上的,接口的设计师自顶向下的

发表评论

表情:
评论列表 (有 0 条评论,414人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java抽象接口区别

    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看

    相关 java抽象接口区别

    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看

    相关 Java接口抽象区别

    一、相同点:都是不断向上抽取而来的。 二、不同点:                 1、抽象类需被继承,只能单继承;接口需被实现,可以多实现。              

    相关 Java抽象接口区别

    很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。 在讨论它们之间的不同点之前,我们先看看