Java面向对象的三大特性 继承

继承是类与类的一种关系,是“is a"关系 
子类拥有父类的属性和方法,private除外
class 子类 extends 父类
 
方法的重写
调用方法时会优先调用子类的方法
重写时,返回值,方法名,参数都必须完全一样
 
继承的初始化顺序
1,先初始化父类,后执行子类
2,先执行初始化对象中的属性,再执行构造方法中初始化
 
final关键字做标识有“最终的”含义
final可以修饰类,方法,属性,变量
修饰类,则该类不允许被继承
修饰方法,则该方法不允许被覆盖(重写)
修饰属性,则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)
            或在构造方法中赋值,两者只能选其一
修饰变量,则该变量的值只能赋一次值,即变为常量
 
java中的super的使用
在对象的内部使用,可以代表父类对象
1,访问父类的属性 super.age
2,访问父类的方法 super.eat()
子类的构造方法必须调用其父类的构造方法
隐式的调用了父类的构造方法,程序员看不到super(),所以在构造方法里写不写super都是一样的
系统默认调用父类的无参构造函数
如果显示的调用构造方法,必须在子类的构造方法的第一行
如果子类构造方法中既没有显式的调用父类的构造方法
而父类又没有无参的构造方法,则编译出错
 
equals()方法
比较的是对象的引用是否指向同一块内存地址
一般情况下比较两个对象时比较它的值是否一致,所以要进行重写
 @Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Inner other = (Inner) obj;
    if (c != other.c)
        return false;
    return true;
}
好好理解每一个if比较的都是什么
第一个比较对象地址,第二个判断obj是否为空,第三个判断类对象和类的对象形式上是否相同,比较类对象和类的对象

 

转载于:https://www.cnblogs.com/wjf0/p/8083089.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值