• 学习java的第十八天。。。(子类)


    今天学习了昨天还没学完的静态方法以及继承

    静态方法

    在静态方法中不能使用this和super关键字,因为static是属于类的,不是属于某一个对象
                在静态方法中可以直接调用本类中其他的静态方法
                在静态方法中不能直接调用本类中其他的非静态方法
                在静态方法中可以直接访问本类中其他的静态变量
                在静态方法中不能直接访问本类中其他的非静态变量
                在非静态方法中可以直接调用本例中的其他静态方法
                在非静态方法中可以直接方法问本类中其他的静态变量
                在非静态方法中可以直接方法问本类中其他的非静态变量
                在非静态方法中可以直接调用本类中的其它非静态方法

    1. public class StaticMethod {
    2. // 定义属性
    3. public String name;
    4. public static int age;
    5. // 定义方法
    6. public static void test() {
    7. // 在静态方法中不能使用this和super关键字,因为static是属于类的,不是属于某一个对象
    8. /*
    9. * this.name="马力"; this.age=4;
    10. */
    11. System.out.println("我是静态方法test()");
    12. }
    13. public static void demo() {
    14. // 在静态方法中可以直接调用本类中其他的静态方法
    15. test();
    16. // 在静态方法中不能直接调用本类中其他的非静态方法
    17. // ttt();
    18. // 在静态方法中不能直接访问本类中其他的非静态变量
    19. // System.out.println(name);
    20. // 在静态方法中可以直接访问本类中其他的静态变量
    21. System.out.println(age);
    22. System.out.println("我是静态方法Demo()");
    23. }
    24. public void ceshi() {
    25. // 在非静态方法中可以直接调用本类中的其它非静态方法
    26. ttt();
    27. // 在非静态方法中可以直接调用本例中的其他静态方法
    28. test();
    29. // 在非静态方法中可以直接方法问本类中其他的静态变量
    30. System.out.println(age);
    31. // 在非静态方法中可以直接方法问本类中其他的非静态变量
    32. System.out.println(name);
    33. System.out.println("我是非静态方法");
    34. }
    35. public void ttt() {
    36. System.out.println("我是非静态方法");
    37. }

    综上所述:静态的只能访问静态的(变量、方法) 非静态的既可以访问静态的也可以访问非静态的

    继承

    继承的好处:

    方便修改代码
    减少代码量

    继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类

    子类访问父类成员

      访问父类构造方法
        super();    
        super(name);
     访问父类属性
        super.name;
     访问父类方法
        super.print();

    super关键字来访问父类的成员

        (1)使用super关键字,super代表父类对象 
        (2)在子类构造方法中调用且必须是第一句
        (3)不可以访问父类中定义为private的属性和方法

    继承条件下的构造方法

            继承条件下构造方法的调用规则
            子类构造方法没有通过super显式调用父类的有参构造方法,也没通过this显式调用自身其他构造方法------系统默认调用父类的无参构造方法
            子类构造方法通过super显式调用父类的有参构造方法------执行父类相应构造方法,而不执行父类无参构造方法
            子类构造方法通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则

    子类继承父类的什么?

            继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里
            继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里

    不能被继承的父类成员

            private成员 
            子类与父类不在同包,使用默认访问权限的成员
            构造方法

    何时使用继承?

            继承与真实世界类似
            继承是代码重用的一种方式
      

  • 相关阅读:
    数据治理-数据安全-基本概念
    TV焦点实战总结
    分享:大数据信用报告查询的价格一般要多少钱?
    【软考-中级】系统集成项目管理工程师 【15 信息 (文档) 和配置管理】
    linux常用命令二
    VS2017+OpenCV4.5.5 K近邻算法-评价纸巾的好坏
    保护热板法导热仪中计量加热器任意设定温度及其加热电功率的超高精度PID恒定控制
    C#根据任意不重复的数组产生一个连续的新数组且最短,其中新数组最大数和者最大数+1不在该任意数组中
    SpringBoot - SWAGGER3公共模块的抽象集成与使用(三)
    CodeMeter软件保护及授权管理解决方案(一)
  • 原文地址:https://blog.csdn.net/qihaojinqiuma/article/details/126148594