第八章:继承

来源:互联网 发布:wrecking ball网络歌手 编辑:程序博客网 时间:2024/06/06 03:54


继承


继承概述:把多个类中相同的内容给提取出来定义到一个类中。
继承:通过extends关键字可以实现类与类的继承
格式:class 子类名 extends 父类名 {}
好处减少重复的代码量,提高代码和开发效率
继承中的成员访问限制
如果父类中变量定义成了private私有变量,则在子类中是不可以调用的,其只能在父类的方法中调用,子类和其他类都不可以。
Java中继承的特点:java只支持单继承,不支持多继承,即:一个子类只能有一个父类(基类),一个父类可以有多个子类
子类对象包含父类对象

继承的注意事项:
A:子类只能继承父类所有非私有的成员(成员方法和成员变量)
B:子类不能继承父类的构造方法,但是可以通过super关键字去访问
C. 静态方法不可以继承
父类构造方法。
Super:调用父类的方法,
Super注意事项
super也可以调用父类的构造方法,父类中构造方法用private修饰时,子类不能继承
子类可以没有构造方法,他会自动调用父类的构造方法
在子类中可以调用父类的构造方法,super必须放在子类构造方法的首句
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量


重写equals toString


Object类是所有Java类的根基类
如果在类的声明中未使用extends关键字指明基类,则默认基类为Object
publicclass Person {
}
等价于
publicclass Personextends Object {
}
toString方法
Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的所有信息
在进行String与其他类型数据的连接操作时(如:System.out.println("info" + person);),将自动调用该对象的toString()方法
可以根据需求在用户自定义类型中重写toString方法
class Dog {
public String toString() {
return"I'm a cool dog!";
}

equals方法
Object类中定义有public boolean equals(Object obj)方法,提供判断定义对象是否相等的逻辑
Objectequals方法定义为:x.equals(y)xy是同一个对象的引用时返回true否则返回false
Object:equals(Object obj)与==一样,先判断内存地址是否相同,若内存地址相同,然后在判断内容是否相同
*
* 当子类重写Object 的equals:覆盖父类的equals(),以自己重写的方法为主
*/
@Override
public boolean equals(Object obj) {
if(obj==null){
return false;
}
if(obj instanceof Han){
Han han = (Han)obj;//向下转型
//判断一个对象与另外一个对象的姓名是否相同 判断性别 姓名不同 不是同一个人
if(han.getName().equals(this.getName())&&han.getSex().equals(this.getSex())){
return true;
}
}
return false;
}
}
//自定义equals
public boolean equals(Han h) {
if (h.getName().equals(this.getName())) {
return true;
}
return false;
}

}

原创粉丝点击