java特点——继承

250 阅读3分钟

继承认识:

  1. 继承是多态的前提,如果没有继承,就没有多态。

  2. 继承主要解决的问题是:共性抽取。即父类有的子类都有,但子类又有自己的特性。 父类也叫基类。

父类定义格式:和定义一个普通类一样

子类格式:extends

父子成员变量名重复时,访问规则

父子继承关系中,如果成员变量名重复,则创建子类对象时,访问方式有两种:

  • 直接通过子类对象访问:

等号左边是谁,就优先用谁,没有则向上找。

  • 间接通过成员方法访问:

改方法属于谁,就优先用谁,没有则向上找。


局部变量:直接写成员变量名

本类成员变量:this.成员名

父类成员变量:super.成员名

父子成员方法重名时的访问规则:

创建的对象是谁,就优先用谁,没有向上找。

[注意]:无论是成员方法。还是成员变量,如果没有都是想上找。

覆盖与重写:

覆盖(overeride):即重写。方法的名称一样,参数列表也一样。

重载(overload):方法的名称一样,参数列表不一样。

  • 两者特点:创建的是子类对象,则优先用子类方法。

  • 覆盖重写注意事项:

1.必须保证父子类之间方法的名称相同,参数列表也相同。__@override(@:叫注解,安全检验的作用):写在方法前面,用来检测是不是有效的覆盖重写。

2.子类的返回值范围小于父类范围。

3.子类方法的权限必须大于等于父类方法权限修饰符。

扩展提示:public>protected>(default)>private

备注:(default)不是关键字default,而是什么都不写,留空。

父子类构造方法的访问特点:

1.子类构造方法当中有一个默认的 “super()"调用,所以一定是先调用父类,再调用子类。

2.子类构造可以通过super关键字来调用父类重载构造。

3.super的父类调用,必须是子类方法的第一个语句。不能一个子类调用多个super。

super关键字的三种用法:

1.在子类的成员方法中,访问父类变量。

2.在子类的成员方法中,访问父类的成员方法。

3.在子类的构造方法中,访问父类的构造方法。

super关键字用来访问父类内容,而this关键字用来访问本类内容。

this关键字三种用法:

1.在本类的成员方法中,访问本类的成员变量。

2.在本类的成员方法中,访问另一个成员方法。

3.在本类的构造方法中,访问本类的另一个构造方法。

A.this()调用也必须是构造方法的第一个语句,唯一一个。

B.super和this两种构造调用,不能同时使用,因为他们都要在第一句使用。

java继承三个特点:

1.java语言是单继承的,一个类的直接父类只能有唯一一个。

2.java语言可以多级继承,如我有一个父亲,我父亲还有一个父亲。

3.一个父亲可以有很多个子类。

抽象的概念:

如何父类当中的方法不确定如何进行{}方法实现,那么这就是应该是一个抽象方法。

2.1.抽象方法:

加上abstract关键字,去掉大括号,直接分号结束;

比如:
public class Animal{
     
public abstract void eat();
}
(错误!!!!!)

2.抽象类:

抽象方法所在的类,必须是抽象类才行,在class之前加上abstract即可。

比如:

public abstract class Animal{
     
public abstract void eat();
}

  (正确!!!!!)