1. 接口支持单继承、多继承、多层继承

    示例:

    1. package com.bxw.demo.interface_;
    2. public class InterfaceExtents {
    3. public static void main(String[] args) {
    4. }
    5. }
    6. // 创建接口1
    7. interface Inter1 {}
    8. // 创建接口2
    9. interface Inter2 {}
    10. // 创建接口3
    11. interface Inter3 {}
    12. // 创建接口a1,单继承
    13. interface A1 extends Inter1 {}
    14. // 创建接口A2,多继承
    15. interface A2 extends Inter1,Inter2,Inter3 {}
    16. // 创建接口A3,多层继承
    17. interface A3 extends A2 {}
    1. 类值支持单实现,多实现

    示例:

    1. package com.bxw.demo.interface_;
    2. public class ClassImInter {
    3. public static void main(String[] args) {
    4. }
    5. }
    6. // 创建接口A
    7. interface A {}
    8. // 创建接口B
    9. interface B {}
    10. // 创建接口C
    11. interface C {}
    12. // 创建实现类,单实现
    13. class D_A implements A{}
    14. // 创建实现类,多实现
    15. class D_A_B_C implements A,B,C {}
    1. 父类定义的是先天存在的属性和行为
    2. 接口是定义了后天可以学习发展的能力

    综合案例:继承与实现方法
    代码:

    1. package com.bxw.demo.interface_;
    2. /**
    3. * 1.定义两个类,非别是Person类和Student类
    4. * 2.定义三个接口,方别是科学家(Scientist)接口,教师(Teacher)接口,程序员(Programmer)接口
    5. * 3.学生属于Person类,继承了Person类的所有属性,同时Student类也有自己的属性
    6. * 4.学生在不断学习,毕业之后相当科学家、老师、程序员
    7. * 5.为他设计不同的未来
    8. */
    9. public class InterDemo {
    10. public static void main(String[] args) {
    11. // 实现小红的未来
    12. XiaoHong xiaoHong = new XiaoHong("小红", 25, "女", 12);
    13. XiaoHua xiaoHua = new XiaoHua("小华",26,"男",24);
    14. // 小红是一个学生,他需要先展示一些人和学生的属性
    15. xiaoHong.eat();
    16. xiaoHong.sleep();
    17. xiaoHong.study();
    18. // 展示一下她成为老师的能力
    19. xiaoHong.teach();
    20. // 下面展示一些小华的人和学生属性
    21. xiaoHua.eat();
    22. xiaoHua.sleep();
    23. xiaoHua.study();
    24. // 展示一些小华的所有能力
    25. xiaoHua.teach();
    26. xiaoHua.research("小华");
    27. System.out.println(xiaoHua.thesis());
    28. xiaoHua.program();
    29. }
    30. }
    31. // 定义一个Person类
    32. class Person {
    33. // 定义人的共同属性
    34. private String name; // 名字
    35. private int age; // 年龄
    36. private String sex; // 性别
    37. // 定义人的共同实现
    38. public void eat(){
    39. System.out.println(getName() + "吃饭");
    40. }
    41. public void sleep(){
    42. System.out.println(getName() + "睡觉");
    43. }
    44. public Person() {
    45. }
    46. public Person(String name, int age, String sex) {
    47. this.name = name;
    48. this.age = age;
    49. this.sex = sex;
    50. }
    51. public String getName() {
    52. return name;
    53. }
    54. public void setName(String name) {
    55. this.name = name;
    56. }
    57. public int getAge() {
    58. return age;
    59. }
    60. public void setAge(int age) {
    61. this.age = age;
    62. }
    63. public String getSex() {
    64. return sex;
    65. }
    66. public void setSex(String sex) {
    67. this.sex = sex;
    68. }
    69. }
    70. // 定义Student类并继承Person类
    71. class Student extends Person{
    72. // 定义学生特有的属性
    73. private int Id; // 学号
    74. // 定义学生特有的方法
    75. public void study(){
    76. System.out.println(getName() + "学习");
    77. }
    78. public Student() {
    79. }
    80. public Student(int id) {
    81. Id = id;
    82. }
    83. public Student(String name, int age, String sex) {
    84. super(name, age, sex);
    85. }
    86. public Student(String name, int age, String sex, int id) {
    87. super(name, age, sex);
    88. Id = id;
    89. }
    90. public int getId() {
    91. return Id;
    92. }
    93. public void setId(int id) {
    94. Id = id;
    95. }
    96. }
    97. // 创建科学家接口
    98. interface Scientist {
    99. // 要成为科学家需要制定的实现目标
    100. String subject = "自然科学"; // 学科必须是这个
    101. String diploma = "硕士"; // 学历必须是硕士
    102. // 制定一些需要完成的目标
    103. public void research(String name); // 研究
    104. public String thesis(); // 论文
    105. }
    106. // 创建教师接口
    107. interface Teacher {
    108. // 成为教师必须要实现目标
    109. public void teach(); // 教学
    110. }
    111. // 创建程序员接口
    112. interface Programmer {
    113. // 成为程序员必须要实现目标
    114. public void program(); // 编程
    115. }
    116. // 学生小红,想成为教师
    117. class XiaoHong extends Student implements Teacher {
    118. // 必须实现Teacher的方法
    119. @Override
    120. public void teach() {
    121. System.out.println("name:"+ getName() + "\t" +
    122. "age:" + getAge() + "\t" +
    123. "sex:" + getSex() + "\t" +
    124. "id:" + getId() + "\t" +
    125. "他学会的教书" + "\t" );
    126. }
    127. public XiaoHong(String name, int age, String sex, int id) {
    128. super(name, age, sex, id);
    129. }
    130. }
    131. // 小华什么都想成为
    132. class XiaoHua extends Student implements Scientist,Teacher,Programmer {
    133. @Override
    134. public void research(String name) {
    135. System.out.println(name + "会研究" + "\t" +
    136. "学科:" + Scientist.subject + "\t" +
    137. "学历:" + Scientist.diploma + "\t");
    138. }
    139. @Override
    140. public String thesis() {
    141. return getName() + "发表了关于自然的论文";
    142. }
    143. @Override
    144. public void teach() {
    145. System.out.println( getName() + "考取了教师资格证");
    146. }
    147. @Override
    148. public void program() {
    149. System.out.println(getName() + "编写出了优秀的程序");
    150. }
    151. public XiaoHua(String name, int age, String sex, int id) {
    152. super(name, age, sex, id);
    153. }
    154. }