一篇文章搞定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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值