java常用类

1. Object类:所有类的超类或基类

     * 一个类没有明确继承某个父类,都默认继承了Object类
     * 
     * Object类的方法:
     *      equals: 比较两个对象的内存地址
     *      toString
     *          public String toString() {
     * 
                    return this.getClass().getName() + "@" + Integer.toHexString(this.hashCode());
                }
     *  
     *      hashCode:获得到当前对象的Hash值
     *      getClass:获得到当前对象所属类的字节码文件对象
     * 
     * String类的方法:
     *      equals:比较两个字符串内容是否相等
     *      toString:返回的字符串内容
     * 
     * ps:打印一个对象,默认调用toString方法

2. 抽象类:用abstract修饰的类

     * 抽象方法:用abstract修饰的方法,没有代码块
     * 
     * 1.抽象类里可以没有抽象方法吗?可以,但是没意义
     * 2.抽象类可以创建对象吗?不可以,创建的是一个匿名的子类(匿名内部类)
     * 3.抽象类里可以有普通方法吗?可以
     * 4.子类继承抽象类,必须要重写父类的抽象方法吗?不一定,如果子类是抽象类,不重写,但是子类是非抽闲类,必须重写
     * 5.抽象类有没有构造方法?有构造方法

3. 接口:是特殊的抽象类

     * 接口里只有静态常量和抽象方法
             * 一个类可以实现多个接口?可以
     * 一个接口可以实现多个接口?不可以,一个接口可以继承多个接口
     * 接口里面的方法不一定都是抽象的?错,全是抽象方法
     * 接口解决了类的单继承问题?是的
     * 一个类是否可以继承一个类并同时实现多个接口?可以
     * 一个类实现接口,必须实现接口里的抽闲方法吗?不一定,该类如果是抽象类,可以不用实现,交给该类的非抽象子类实现
     * 接口可以创建对象吗?不可以

4. 多态:多种形态

     1.子类对象指向父类引用
     2.实现类对象指向接口的引用

5. 对象转型:

     *      向上转型:子类类型转父类类型
     *          可以获取父类的属性和方法
     *          不可以获取子类的属性和方法
     *          但是可以获取子类重写父类后的方法
     *          Animal an = new Dog();
                System.out.println(an.name);
                an.method();
                
     *      向下转型(不安全):父类类型转子类类型
     *      ClassCastException:类型转换异常

6. 应用场景

重写:
父类:别人的类,我们不能随便改动
子类:继承父类,重写觉得不合适的方法

抽象类及抽象方法:
父类:我们编写,觉得有些方法不好准确实现,就把方法设置成抽    闲的,交给子类重写
子类:重写父类的抽象方法
(子类如果是抽象类,可以不重写父类的抽闲方法,
如果子类的子类时非抽象类,就必须重写)

接口:(接口更像一个模板,规定了实现类必须要去实现的内容)

1.之前我们用的常量类,现在改为常量接口
2.如果抽象类只有抽象方法,直接用接口代替
为什么用接口代替?
类与类:单继承关系
类与接口:多实现关系
接口与接口:多继承关系

7.内部类详解

https://www.cnblogs.com/dolphin0520/p/3811445.html

你可能感兴趣的:(java常用类)