存在继承的类,被继承的类称为父类/基类,继承的类称为子类
范围;
1.private 修饰的变量不能被继承,private 以外可以被继承
2.private 修饰的成员方法不能被继承 , private以外的成员方法可以被继承
3.构造方法不能被继承
子类和父类的关系: is a 属于
财产继承,愚公移山,基因继承…
例 :Animal 类
名字 ,年龄
跑,吃
狗 :属于动物
extends 关键字:表示类的继承关系
Object类;
超类: 所有的类都直接或间接的继承了Object类
boolean equals(Object obj);
int hascode();
也可以称之为:万类之父
属性的隐藏:
当子类定义了和父类相同成员变量的时候,父类的成员变量会自动隐藏
super 关键字
用于指向父类的引用,代表父类的实例化对象
super 关键字在子类的构造器或方法中使用
1.super[参数列表]:调用父类的构造函数,在子类构造函数中使用
2.通过super关键字调用父类成员变量
3.通过super关键字调用父类的成员方法
this 关键词
当前类的一个内置对象this 实例化的对象的引用
作用:
1.this ([参数类别]); 调用当类的构造函数
2.区别成员变量和名称相同饿局部变量
3.通过this关键字调用成员方法
多态: 面向对象中,一个方法的多中心态
方法重载:
public void add(int i,int j){
int sum = i + j;
System.out.println(“求和:” + sum);
}
public void add(int i,int j, int k){
int sum = i + j + k;
System.out.println("求和:" + sum);
}
1.方法名相同
2.参数不同:参数个数,参数类型不同
3.必须在同一个类中
方法的重写:
1.存于继承关系的类找那个 子类–父类
2.方法名,参数列表,参数类型,返回值类型完全一致
3.访问修饰符子类必须大于或等于父类
4.@Override:注解,代表方法的重写
方法的调用:根据new 关键字 后面调用的类实例确定调用谁的方法
面试题:
方法的重载和重写 有什么区别
.方法的重载必须是同一个类中,方法的重写存于继承关系的子类和父类中
2.方法的重载是各方法的参数列表不同,重写的参数完全一样
3.权限(访问)修饰符,重载的访问修饰符完全一样,重写的方法的子类的访问修饰符
大于或等于父类权限修饰符