- 一、继承的概念和实现
- 二、super关键字
- 1.super关键字的特点
- 2.代码实现
- 三、方法重写-Override
- 1.什么是方法重写
- 2.方法重写注意点
- 3.代码实现
- 四、Object类常见方法
生活中,继承的概念随处可见
继承需要符合的关系:is-a;父类更通用更抽象、子类更特殊更具体
·继承背后的思想就是 基于已存在的类来构建新类
·当从已存在类继承时,就重用了它的方法和属性,还可以添加
新的方法和属性来定制新类以应对需求
·约定:从其他类导出的类叫做子类。
被导出的类叫做父类
·在java中,除了Object类之外,所有类都是子类,都只有
唯一的父类
·在java语言中,用extends关键字来表示一个类继承了另外一个
super和this关键字的特点类似:super代表的是父类对象的引用
·当子父类的成员出现同名时,可以通过super来区分
·子类的构造方法中,通过super关键字调用父类的构造方法
package jichneg.su.www;
class Preson {
String name;
String gender;
public Preson(String name, String gender) {
this.name = name;
this.gender = gender;
System.out.println("父类的构造方法");
}
public void eat() {
System.out.println("人喝水");
}
public void eat1() {
System.out.println();
}
}
class Student extends Preson {
public Student(String name, String gender) {
super(name, gender); // 子类构造方法中,通过super关键字调用父类的构造方法
// 既然是继承当然要知道父类的具体(构造方法)
System.out.println("子类的构造方法");
}
int eag;
String calss;
public void eat() {
super.eat(); //当子类和父类的成员出现同名是用super关键字区分
System.out.println("小孩喝水");
}
}
public class Demo11 {
public static void main(String[] args) {
// Preson sa=new Preson("张三","1002");
Student so = new Student("小猫", "1001");
so.eat();
}
}
三、方法重写-Override
1.什么是方法重写
方法重写是指子类可以根据需要对从父类继承来的方法进行改写,
是多态机制的前奏
·重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值
·重写方法不能比被重写方法有更严格的访问权限
·父类中的私有方法,不能被重写
·在子类重写的方法中继续调用父类被重写的方法可以通过super.函数名获取
package jichneg.su.www;
class Preson {
String name;
private String gender;
protected void eat() {
System.out.println("人喝水");
}
public void eat1() {
System.out.println();
}
}
//·重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值
//·重写方法不能比被重写方法有更严格的访问权限
//·父类中的私有方法,不能被重写
//·在子类重写的方法中继续调用父类被重写的方法可以通过super.函数名获取
class Student extends Preson {
int eag;
String calss;
String gender;
public void eat(){ //子类重写方法的访问修饰符范围应该更大
super.eat();
System.out.println("小孩子喝水");
}
}
public class Demo11 {
public static void main(String[] args) {
Student so=new Student();
so.eat();
// so.gende="其他";
}
}
四、Object类常见方法
·java中,所有类都直接或间接继承自java.lang.Object类
可以说Object是java中所有类的祖先即根类
·java中任何类都继承了Object类中的方法,主要有
toString()
equals()
hashcode()
clone()
getClass()
finalize()
String toString()
·返回该对象的字符串描述信息。默认输出的格式:
类名[字段值,字段值…]
·只要对象与一个字符串通过“+”连接,系统就会自动调用toString获得对象的
字符串描述符
·常被改写:可以根据用户的需求对其进行重写
Boolean equals()
·Object类原始功能是实现判断两个对象是否具有相同的引用,要求判断两个对象
状态的相等性。



