• 学习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成员 
            子类与父类不在同包,使用默认访问权限的成员
            构造方法

    何时使用继承?

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

  • 相关阅读:
    Redis基础架构
    嵌入式Linux入门-异常与中断(流程+寄存器全解析)
    【UML用户指南】-17-对基本行为建模-交互
    Oracel中视图相关概念和操作(一)
    展厅显示大屏怎么选,展厅使用哪种显示大屏好?
    AI角色对环境信息的感知方式
    量化风控的规则开发,如何更好做策略定规则,抓坏人
    [游戏开发][unity]Xlua中使用proto、json、lpeg
    基于Java毕业设计短视频交流点播系统源码+系统+mysql+lw文档+部署软件
    【iOS】UI学习——cell的复用及自定义cell
  • 原文地址:https://blog.csdn.net/qihaojinqiuma/article/details/126148594