• 面向对象特性之一:继承性


    类的继承:

    1.继承
        关键字:extends
        例如:class A extends B{
        }
        A:子类  B(超类,基类,SuperClass):父类
    2.通过继承,子类可以继承父类中所有的属性和方法(构造器除外)
    3.继承的注意:
        ①不能为了简化代码,获取某关系而继承,若要继承,二个类之间必须满足一定的所属关系: is a
        ②java只支持单继承,不支持多继承。(一个父类可以有多个子类,但是一个子类只能有一个父类)
        ③java支持多层继承

    1. /*一.面向对象的特性之一:继承性
    2. 问题:当创建Students和Employee类时,产生了大量共性内容
    3. 解决:将多个类中的共性内容进行提取,提取到相应的jiava类中,与之建立关系
    4. 1.继承
    5. 关键字:extends
    6. 例如:class A extends B{
    7. }
    8. A:子类 B(超类,基类,SuperClass):父类
    9. 2.通过继承,子类可以继承父类中所有的属性和方法(构造器除外)
    10. 3.继承的注意:
    11. ①不能为了简化代码,获取某关系而继承,若要继承,二个类之间必须满足一定的所属关系: is a
    12. ②java只支持单继承,不支持多继承。(一个父类可以有多个子类,但是一个子类只能有一个父类)
    13. ③java支持多层继承
    14. */
    15. public class ExtendsTest1 {
    16. public static void main(String[] args) {
    17. Students stu=new Students();
    18. stu.name="学生张三";
    19. stu.age=18;
    20. stu.no=2020740;
    21. System.out.println("姓名:"+stu.name+" 年龄:"+stu.age+" 学号:"+stu.no);
    22. stu.eat();
    23. stu.sleep();
    24. stu.study();
    25. System.out.println("----------------------------");
    26. Employee emp=new Employee();
    27. emp.name="员工李四";
    28. emp.age=22;
    29. System.out.println("姓名:"+emp.name+" 年龄:"+emp.age);
    30. emp.eat();
    31. emp.sleep();
    32. emp.work();
    33. System.out.println("----------------------------");
    34. Manager mag=new Manager();
    35. mag.name="经理王五";
    36. mag.age=35;
    37. System.out.println("姓名:"+mag.name+" 年龄:"+mag.age);
    38. mag.eat();
    39. mag.sleep();
    40. mag.work();
    41. }
    42. }
    43. class Person{
    44. String name;
    45. int age;
    46. public void eat(){
    47. System.out.println("吃饭");
    48. }
    49. public void sleep(){
    50. System.out.println("睡觉");
    51. }
    52. }
    53. class Students extends Person{
    54. int no;
    55. public void study(){
    56. System.out.println("学习");
    57. }
    58. }
    59. class Employee extends Person{
    60. public void work(){
    61. System.out.println("工作");
    62. }
    63. }
    64. class Manager extends Employee{
    65. }
    66. /*class Students{
    67. String name;
    68. int age;
    69. public void eat(){
    70. System.out.println("吃饭");
    71. }
    72. public void sleep(){
    73. System.out.println("睡觉");
    74. }
    75. }*/
    76. /*class Employee{
    77. String name;
    78. int age;
    79. public void eat(){
    80. System.out.println("吃饭");
    81. }
    82. public void sleep(){
    83. System.out.println("睡觉");
    84. }
    85. }*/
    1. package Exer;
    2. /*
    3. 编写Computer类,包含CPU,内存,硬盘等属性,gerDetails方法用于返回Computer的详细信息
    4. 编写PC子类,继承Computer类,添加特有属性和方法
    5. 编写NotePad子类,继承Computer类,添加特有属性和方法
    6. 编写Test类,在mian方法中创建PC和NotePad对象,分别访问对象中特有的属性和方法,以及从Computer类继承的属性和方法并打印输出
    7. */
    8. public class ExtendsExer1 {
    9. public static void main(String[] args) {
    10. PC pc=new PC();
    11. pc.cpu="3.0GHz";
    12. pc.ram="16G";
    13. pc.hdd="1T";
    14. pc.box=true;
    15. System.out.println(pc.getDetails());
    16. pc.hasBox();
    17. NotePad np=new NotePad();
    18. np.cpu="5.0GHz";
    19. np.ram="32G";
    20. np.hdd="2T";
    21. np.fold=true;
    22. System.out.println(np.getDetails());
    23. np.isFold();
    24. }
    25. }
    26. class Computer{
    27. String cpu;
    28. String ram;
    29. String hdd;
    30. public String getDetails(){
    31. return "CPU:"+cpu+" RAM:"+ram+" HDD:"+hdd;
    32. }
    33. }
    34. class PC extends Computer{
    35. boolean box;
    36. public void hasBox(){
    37. System.out.println("是否有主机箱:"+box);
    38. }
    39. }
    40. class NotePad extends Computer{
    41. boolean fold;
    42. public void isFold(){
    43. System.out.println("是否可以折叠:"+fold);
    44. }
    45. }

  • 相关阅读:
    33.【C/C++ char 类型与Ascii大整合,少一个没考虑你打我】
    【每日一读】On Interpretation of Network Embedding via Taxonomy Induction
    猫头虎分享从Python到JavaScript传参数:多面手的数据传递术
    springcloud第4季 使用resilience4j实现服务流量治理
    上周热点回顾(8.8-8.14)
    【BOOST C++】教程4:常量和宏
    【国产MCU】-CH32V307-SysTick中断与延时功能实现
    读未提交-为什么可以读到别人修改的数据
    如何利用 Selenium 对已打开的浏览器进行爬虫
    npm常用命令
  • 原文地址:https://blog.csdn.net/m0_54397364/article/details/126161480