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

    何时使用继承?

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

  • 相关阅读:
    [GIT]版本控制工具
    加密与解密 读书笔记
    软件测试面试-如何定位线上出现bug
    wsgiref模块、web框架、django框架简介
    MySQL binlog 数据恢复
    [RK3568][Android11]内核Oops日志分析
    『航班乘客满意度』场景数据分析建模与业务归因解释 ⛵
    [动态规划] (十) 路径问题 LeetCode 174.地下城游戏
    Zookeeper
    卖出看跌期权策略(Short Put)
  • 原文地址:https://blog.csdn.net/qihaojinqiuma/article/details/126148594