兰州网站优化排名,WordPress恶意扫描,企业邮箱注册申请免费注册126,wordpress朋友圈1.abstract
1.1 abstract
abstract 是修饰符#xff0c;表示抽象的#xff0c;用来修饰抽象类和抽象方法。
abstract 修饰的类是抽象类#xff0c;抽象类不能创建对象#xff0c;主要用于被子类继承。
abstract 修饰的方法是抽象方法#xff0c;该方法没有方法体…1.abstract
1.1 abstract
abstract 是修饰符表示抽象的用来修饰抽象类和抽象方法。
abstract 修饰的类是抽象类抽象类不能创建对象主要用于被子类继承。
abstract 修饰的方法是抽象方法该方法没有方法体只定义功能不提供实现用于让不同的子类去实现覆写。
1.2 抽象类中是否有构造方法
子类创建对象时需要调用父类的构造方法因此抽象类作为父类需要有构造方法。
1.3 抽象方法和抽象类的关系
抽象方法必须在抽象类中。
抽象类中可以没有抽象方法。
一个类中只要有抽象方法那么这个类就是抽象类。
1.4 abstract 和 final
这两个修饰符互斥不可以同时出现。
1.5 继承抽象类
子类如果要继承抽象类就必须实现所有的抽象方法否则该子类也要用 abstract 修饰成为一个抽象类。
1.6 abstract 中的多态
抽象类的本质就是要让子类通过覆写父类方法实现功能满足覆写方法的条件因此可以使用多态。
2.接口 Interface
2.1 Interface
接口不能创建对象没有构造方法但是可以发生多态。
接口和接口之间是继承关系并且可以多继承。
如果接口和抽象类都能实现某个功能的时候优先使用接口。因为类和接口之间是多实现的关系如果使用接口可以保留类继承扩展性更强。
2.2 JDK1.8 对 Interface 的更新
在 JDK1.8 之前接口完全抽象只允许出现抽象方法和常量。
从 JDK1.8 开始接口中可以出现静态方法和默认方法等同为成员方法。
2.3 Interface 中的修饰符
在 interface 中修饰符可以省略。
常量前的 public static final 都可以省略。不写的话默认就是 public static final 。
方法前的 abstract 可以省略。不写修饰符的话默认就是 abstract 。
2.4 Interface 中的默认方法
修饰符为 default 得到默认方法需要创建子类对象进行调用。这个方法相当于成员方法有具体的实现功能。
3.Object
3.1 Object
Object 是根类所有类都直接或间接继承 Object 。
Object 中有许多方法比如 toString equals finalize 。
3.2 toString
toString 代表了该对象的字符串形式的描述方式。
输出引用类型的时候会自动调用该对象的 toString 方法默认的 toString 方法是打印内存地址。
3.3 equals
equals 方法的设计目的是比较两个对象是否相等。
默认的 equals 比较的是内存地址。
如果我们不需要比较内存地址而是要比较某些属性值的话就需要根据需求进行覆写。
通过 String 类的源码可以知道 String 已经覆写了 equals 方法比较的是值是否相同。
3.4 finalize
JVM 在进行自动垃圾回收的时候会调用该对象的 finalize 方法。
finalize 方法本身没有回收功能只是在被回收之前调用。
堆内存中存在某个对象但是没有任何引用指向该对象的时候该对象就成为了垃圾数据。 如果对您有帮助请点赞关注支持我谢谢❤ 如有错误或者不足之处敬请指正❤