栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一篇文章搞定Java继承

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一篇文章搞定Java继承

继承

注意点:父类没办法使用子类中的方法

强制类型转换

某些不能强制转换的(例如 String转实体类)会报错

只能在继承层次内进行强制类型转换

多态

子类继承父类,重写父类的方法

父类引用指向子类对象的时候,先调用的是子类的方法,如果没有再调用父类的方法

多态实现的必要条件

1. 子类必须继承父类

2. 必须有重写

3. 父类引用指向子类对象

抽象类 

抽象类的修饰符  abstract


抽象类没有办法直接构建一个对象,尤其专指new


抽象类的几个特点

  • 可以有普通方法----------------------(但抽象方法必然在抽象类中)
  • 可以有构造函数
  • 没有抽象属性

一个类继承抽象类的要求

  • 重写所有的抽象方法
  • 或把它自己也声明成一个抽象方法

实例:

抽象类

public  abstract  class Change {
    public abstract void eat();
}

类继承抽象类

public class ChangeSon extends change {

    @Override
    public void eat() {

    }
}

或把此类也改成抽象类

public abstract class ChangeSon extends change {


}

抽象类中,可以有构造方法,供子类创建对象时初始化父类成员使用

接口  接口和抽象类的区别?

抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为规范

接口可以多继承,而抽象类只能单继承

Object  equals方法

在object的类里面,如果两个引用指向同一个对象,用equals判定是相等的

但如果不在object的类,比如两个String 用 equals判断的时候,此时的equals被重写了,只需要判断两个String里的值是否相等,如果相等equals判断就为true


hashCode

特征码值,在各种集合(HashMap,HashSet)

Object类里面,equals hashcode获得的是相同的表现,

如果equals相等,hashcode相等

equals不等,hashcode不一定不等

equals不一样代表着不在同一个位置,hashcode自然而然也是不一样的


1.为什么重写equals要重写hashcode?

在hashmap等系列的集合里面,hashCode参与确定对象的位置,当equals判断相等的时候,hashCode也相等

假如我们重写equals没有重写hashcode,equals判定相等,但是在hashmap中不是同样的位置,集合就会产生错误

另一方面:从object中,如果equals判断对象相等,特性一样,hashCode应该也一样,而如果重写equals没重写hashcode,equals判定相等的时候,hashcode可能不一样,此时需要重写hashcode

反射

三种获得类信息的方式

  • 类名.class
  • 对象.getClass();
  • Class.forName("全限定名")

注:全限定名:包名+类名    (ex:com.test.Test.java)


简易MVC

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/952736.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号