java基础08

在子类构造对象时,发现访问子类构造函数时,父类构造函数也运行。原因是:在子类中的构造函数第一行有一个默认的隐式语句。super();

子类的实例化过程:子类中所有的构造方法默认访问父类中的空参构造函数。

为什么子类实例化的时候要访问父类中的构造函数?   因为子类继承了父类,获取到了父类中内容(属性),所以在使用父类内容之前,要先看父类是如何对自己的内容进行初始化的。所以子类在构造函数时,必须访问父类中的构造函数。

为什么完成这个必须的动作,就在子类的构造函数中加入了super()语句?如果父类中没有定义空参数构造函数,那么子类构造函数必须用super明确要调用父类的那个构造函数。

注意:super语句必须要定义在子类构造函数的第一行,因为父类的构造函数要先完成。

初始化过程:成员变量默认初始化--->父类初始化--->子类成员变量显示初始化--->子类构造方法初始化

一个对象实例化过程:Persion p = new Persion();

1.JVM会读取指定的路径下的Person.class文件,并加载进内存;并会先加载Person的父类(如果有直接父类的情况下)。

2.在堆内存中开辟空间,分配地址,并在对象空间中,对对象中的属性进行默认初始化。

3.调用对象的构造函数进行初始化。

4.在构造函数中,第一行会先到调用父类中构造函数进行初始化。

5.父类初始化完毕后,再对子类中的属性进行显示初始化。

6.再进行子类构造函数的特定初始化。

7.初始化完毕后,将地址赋值给引用变量。

继承的弊端:打破了封装性。

final关键字:1.final是一个修饰符,可以修饰类,方法,变量。2.final修饰的类不可以被继承。3.final修饰的方法不可以被覆盖。4。final修饰的变量是一个常量,只能赋值一次。

为什么要使用final修饰变量,其实在程序中如果一个数据是固定的。通常将变量用final修饰,为了方便引用。

抽象类:被abstract修饰的类。(如果该类中有被abstract修饰的方法,必须将该类使用abstract修饰)

abstract:修饰函数称之为抽象函数,修饰类称之为抽象类。

抽象类的特点:1.方法只有声明没有实现时,该方法就是抽象方法,必须被abstract修饰,抽象方法必须定义在抽象类中,所以类必须使用abstract修饰。2.抽象类不可以被实例化。(因为调用抽象方法没有意义)3.抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以被实例化。否则,这个子类还是抽象类。

注意:1.抽象类中有构造函数,用于给子类对象进行初始化;2.抽象类可以不定义抽象方法,目的是不让这种类创建对象。AWT适配器对象就是着种类;3.抽象关键字与private关键字不能进行共存,因为抽象方法必须被覆盖。抽象关键字不能与static关键字共存,抽象关键字与final关键字共存。4.抽象类与一般类的相同点:抽象类和一般类都是用来描述事物,都在内部定义了成员。不同点:一般类有足够的信息描述事物,抽象类描述事物的信息有可能不足。一般类中不能定义抽象方法,只能定义一般方法,抽象类中可以定义抽象方法,同时也可以定义一般方法。一般类可以被实例化,抽象类不可以被实例化。

 

接口

定义接口的关键字:interface

接口中常见的成员:(而且这些成员中都有固定的修饰符)

1.全局常量:public static final

2.抽象方法: public abstract

由此得出结论,接口中的成员都是公共的权限。

类与类之间是继承的关系,类与接口之间是实现关系(通过implements实现)。

注意:接口不可以实例化,只能由实现类接口的子类,并实现了所有方法后才可以实例化,否则只能算是抽象类。

在java中不支持多继承,支持单继承,多实现(避免了单继承的局限性)。

接口与接口之间是继承关系,而且是支持多继承。

特点:1.是对外暴露的规则。2.接口是程序的功能特点。3.接口的出现降低了耦合性。4.可以多实现。

抽象类和接口的相同点:都是不断向上抽取而来的。

抽象类和接口的不同点:1.抽象类需要被继承,而且只能单继承。接口需要被实现,而且可以多实现。2.抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。接口中只能定义抽象方法,必须由子类去实现。3.抽象类的继承,是is a关系,在定义该体系的基本共性内容,接口的实现是like a 关系,在定义体系额外功能。

多态

定义:某一类事务存在多种形态

体现:父类变量指向子类的引用。

好处:提高了代码的扩展性,前期定义的代码可以使用后期的内容。

弊端:前期定义的内容不能使用后期定义的特有内容,

多态的前提:1.必须要有关系,继承,实现。2.要有覆盖。

自动类型提升,猫对象提升了动物类型,但特有功能无法访问。作用就是限制特有功能的访问。专业讲:向上转型。

猜你喜欢

转载自blog.csdn.net/weixin_42581821/article/details/86606103
今日推荐