day09

一,抽象方法:加上abstract关键字,去掉大大括号。直接分号结束

* 抽象类:抽象方法所在的类,必须是抽象类才行,在class前加上abstra

*  如何使用抽象类和抽象方法:

*  1不能直接创建new抽象类对象

*  2必须用一个子类来继承抽象父类

*  3子类必须覆盖重写抽象父类当中所有的抽象方法

*  覆盖重写(实现),子类去掉抽象方法的abstract关键字,然后补上方法大括号 * 

 4创建子类对象进行使用

* java语言是单继承的* 

一个类的直接父类只能有唯一的一个* 可以多级继承

* 一个父类可以有很多个子类

二,

* 面向对象的三大特征:封装性,继承性,多态性

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

*继承主要解决的问题是:共同抽取。

* 继承关系中的特点:

* 1子类可以拥有父类的东西

* 在继承的关系中:“子类就是一个父类”

* 定义一个父类的格式:

* public class 父类名称{

*


* }

* 子类的定义:

* public class 子类名称 extends 父类名称{

* }

三,

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

* 直接通过子类对象访问成员变量

* 等号左边用谁,就先用谁,没有就向上推* 间接通过成员方法访问成员变量

* 局部变量:直接写* 

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

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

四,* 在父子类的继承关系当中,创建子类对象,访问成员方法规则。

* 创建的对象是谁,就优先用谁,如果没有则向上找*

* 注意事项:

* 无论成员方法还是成员变量,如果没有都是向上找父类,绝不会向下找子类*重写:Override

* 概念:在继承关系当中,方法名称一样,参数列表也一样

* 重写:方法名一样,参数列表也一样,覆盖* 

重载:方法名一样,参数列表不一样

* 方法覆盖的注意事项:

* 1必须保证父子类之间方法的名称相同,参数列表也相同

* @Override:写在方法前面,用来检测是否覆盖重写

*2子类方法的返回值必须小于等于父类方法返回值范围

* Object类是所有类公共最高父类(祖宗类)

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

* public》protected>(default)(不是关键字default,是什么都不写)>private

*

五,

* 继承关系中,父子类构造方法的访问特点:

* 1子类构造方法当中有一个默认隐含的“super()”调用,一定先调用父类构造,后执行子类方法

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

* 3super的父类构造调用,必须是子类构造方法的第一个语句。

* 不能一个子类构造多次调用super构造* 4子类必须调用父类方法,不写默认写了。才能调用父类构造结构 * */

六,

* super关键字的用法有三种:

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

* 2在子类的构造方法中,访问父类构造方法

*super关键字访问父类内容,this关键字访问本类内容

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

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

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

注意:this(。。。)调用也必须是构造方法的第一个语句*B.super和this不能同时使用。

一个抽象类不一定含有抽象方法,只要保证抽象方法所在的类是抽象类,即可*

你可能感兴趣的:(day09)