Java基础复习(六)————面向对象(下)

1、抽象类

(1)概述:用来存放抽象方法并且用abstract修饰的类。

(2)抽象类格式:abstract class{}

          抽象方法的格式:public abstract 返回值 function(){}

(3)特点:

A.抽象类必须用abstract关键字修饰;

B.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类(不要忘记:接口中也有抽象方法。)

C.抽象类不能实例化

D.抽象类的子类

    (a)是一个抽象类。

    (b)是一个具体类。这个类必须重写抽象类中的所有抽象方法。

E.抽象类的成员特点:

    (a)成员变量:有变量,有常量;

    (b)构造方法:有构造方法;

    (c)成员方法:有抽象,有非抽象;

(4)注意事项:abstract 不能和private,final,static一起使用

2、接口

(1)概述:用interface关键字定义接口,将方法的定义和方法的实现分离。

(2)特点:

A.用interface关键字修饰接口名;

B.接口不能被实例化;

C.接口的实现类用implements实现接口;

D.接口的实现类

    (a)是一个抽象类;

    (b)是一个具体类,这个类必须重写接口中的所有抽象方法;

E.接口成员特点:

   (a)接口中的成员变量默认是pulic,static,final类型的,必须显示初始化;

   (b)接口中的成员方法默认是public,abstract类型的;

   (c)JDK8之后允许定义默认方法和静态方法;

   (d)没有构造方法

3、抽象类和接口的异同:

(1)相同点

A.都不能被实例化;

B.都包含抽象方法;

(2)不同点

A.一个类只能继承一个类,可以是抽象类;而一个类能实现多个接口;

B.抽象类的成员可以是变量、常亮、抽象方法、非抽象方法,而接口只能是常量、抽象方法、默认方法和静态方法(JDK8开始)

4、Java语言的修饰符

(1)static修饰符

A.概述:可以修饰成员变量和成员方法

B.特点:(a)随着类的加载而加载;

                (b)优先于对象存在;

                (c)被类的所有对象共享;

                (d)可以通过类名调用。

C.注意事项:在静态方法中是没有this关键字的;
                        静态方法只能访问静态的成员变量和静态的成员方法。

D.静态的内容存在于方法区的静态区

E.静态变量和成员变量的区别
(a)所属不同
          静态变量属于类,所以也称为为类变量
          成员变量属于对象,所以也称为实例变量(对象变量)
(b)内存中位置不同
          静态变量存储于方法区的静态区
          成员变量存储于堆内存
(c)内存出现时间不同
          静态变量随着类的加载而加载,随着类的消失而消失
          成员变量随着对象的创建而存在,随着对象的消失而消失
(d)调用不同
          静态变量可以通过类名调用,也可以通过对象调用
          成员变量只能通过对象名调用

(2)final修饰符

A.修饰类,类不能被继承

B.修饰变量,变量就变成了常量,只能被赋值一次

C.修饰方法,方法不能被重写

猜你喜欢

转载自blog.csdn.net/MaxwellQAQ/article/details/81100436