继承:关键字:extends
被继承的类叫做父类,继承的类叫子类。
继承之后:子类就可以直接使用父类的非私有成员(成员变量,成员方法)。
优点:1提高代码复用性。2提高了代码的可维护性(方便修改和维护)。
3,让类与类之间产生了关系(多态的前提)
父类:有的也叫跟类,基类,超类
父类:拥有子类的共同特点,公共部分的类。
子类:有的也叫派生类
所有的类都有父类,都直接或者间接继承(Object)
当父类的成员变量用private修饰时,有get/set方法访问和修改
点class类 f2键改名字;
一个子类不能拥有多个直接父类。只支持单继承。
继承可以多层继承。
Ctrl 加 T 查看继承树状关系
方法重写(方法复写,方法覆盖):1子父类中出现方法声明出现一模一样的的方法,2子类的访问权限必须大于等于父类的访问权限,3private修饰的私有方法不能被重写。
这种现象叫做“方法重写”@Override
方法重载
权限关键字 public 公共的 > 默认的 (什么都不写)>private 私有的
子类的构造方法会先调用父类的空参构造,从而保证父类的相关内容会优于子类对象的产生。子类就可以使用父类的内容了。(因为在子类方法中 会先有一个supper() );
Super():带括弧的一定是方法!
子类对象空间中包含了父类的对象空间
构造
This调用的是本类的成员变量。
在子类方法中:访问子类自身的成员,访问父类的成员。
This.成员变量 可以访问本类对象的成员变量
Super.成员变量 可以访问父类对象的成员变量
This.成员方法 可以访问本类对象的成员方法
Super.成员方法 可以访问父类对象的成员方法
This():找当前类的构造方法
Super():找父类的构造方法
public Dog (){
} 调用父类无参构造方法 、
Public Dog(String name ,int age,【子】) String color{
Super(name, age);
This.color = color;
}调用父类有参构造
成员变量:
1在没有this和 supper修饰的情况下,变量在使用时遵循就近原则(先找局部变量,再找成员变量,再找父类成员变量。);
2局部变量和成员变量重名是用this区别开。
3子类成员变量和父类成员变量重名时用super区分,
方法调用方法
子类构造方法中第一行要么是super()调用父类构造。要么是this调用子类构造,其最终原则是先有父类 的内容再有子类对象
包相当于文件夹,同一个包下面不能有相同的类名. |
|