zoukankan      html  css  js  c++  java
  • java继承,final,super,Object类,toString,equals,

    Java中的内部类:
    成员内部类
    静态内部类
    方法内部类
    匿名内部类

    内部类的主要作用如下:

    1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

    2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据

    3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便


    -----------------------------
    Jav中的继承是单继承
    子类拥有父类的所有属性和方法(private修饰的无效)
    实现代码复用

    语法规则:
    class 子类 extends 父类{

    }

    方法的重写:
    如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先调用子类的方法。
    语法规则:
    a、返回值类型
    b、方法名
    c、参数
    都要与父类继承的方法一致,才叫方法的重新。

    //父类
    public class Animal{
      public int age;
      public void eat()
      {
        System.out.println("Animal eat");
      }
    }

    //子类,可以访问父类的属性age,并且重写了父类的方法eat
    public class Dog extends Animal{
      public void eat()
      {
        System.out.println("Dog eat");
      }
    }

    -----------------------------------------
    final关键字
    可以修饰类,方法,属性和变量
    final修饰类,则该类不允许被继承
    final修饰方法,则该方法不允许被覆盖(重写)
    final修饰属性,
    则属性不会进行隐形的初始化(类的初始化属性必须有值)
    或在构造方法中赋值(但只能选其一)

    final修饰变量,则该变量的值只能赋值一次,即为常量

    ------------------------------------------------
    super关键字
    在对象的内部使用,可以代表父类对象。
    1、访问父类的属性
    super.age;
    2、访问父类的方法
    super.eat();

    super的应用
    子类的构造过程当中必须调用其父类的构造方法。

    如果子类的构造方法中没有显示调用父类的构造方法,则系统会默认调用父类无参的构造方法。

    如果显示的调用构造方法,必须在子类的构造方法的第一行。
    public Dog()
    {
      super();
      System.out.println("test");
    }

    如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。

    如果自己定义了一个有参的构造方法,系统就不会再提供默认的无参的构造方法。
    --------------------------------------------------------------
    Object类
    是所有类的父类,如果一个类没有使用extends明确标识继承另外一个类,那么这个类默认继承Object类。
    Object类中的方法,适用所有子类。
    1、toString()方法
    在Object类里面toString方法返回的是对象的哈希code码(对象地址字符串)

    可以通过重写toString()方法表示出对象的属性。
    eclipse工具提供了方法实现子类重写toString,
    菜单source -----> Generate toString 选择属性值。

    2、equals()方法 (== 操作符)
    Object类中的方法,比较的是对象的引用是否指向同一块内存地址。

    一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。

    eclipse菜单source -----> Generate hashCode() and equals() 选择属性值。

  • 相关阅读:
    svn环境搭建
    Svn正确的使用方法
    基于phpExcel写的excel类
    关于ecshop中jquery与js冲突解决的方案
    学习Javascript闭包(Closure)
    JS全局变量VAR和THIS
    python六十六课——单元测试(二)
    python六十五课——单元测试(一)
    python六十四课——高阶函数练习题(三)
    python六十四课——高阶函数练习题(二)
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/8317983.html
Copyright © 2011-2022 走看看