抽象类与接口以及super\this关键字

一、抽象类

 

        格式:

                abstract    class    类名{

                    属性;

                    访问权限    返回值类型    方法名称(参数){    //普通方法

                        return 返回值;

                    }

 

                    访问权限    abstract    返回值类型    方法名称(参数);//抽象方法

                    //抽象方法是没有方法实体的

 

                }

 

 

 

java中可以专门创建一个类用来作为父类,这种类成为“抽象类”,作用类似于“模版”,目的是要让设计者依据他的格式来修改并创建一个新的子类,只能由抽象类派生出新的子类,在有这个子类来创建对象。

 

 

  • 抽象类的定义和使用规则

            1、包含一个抽象方法的类必须是抽象类

            2、抽象类和抽象方法必须要用abstract关键字修饰

            3、抽象方法只用声明,不需要实现

            4、抽象类必须要被子类继承,子类(如果不是抽象类)必须要覆写所有的抽象方法

 

 

  • 抽象方法不可以用final关键字声明,因为我final声明的类、方法、属性,均不能被修改,抽象方法必须要被子类继承并覆写抽象方法。

 

  • 抽象类可以定义构造方法

 

            抽象类依然是用的是类的继承关系,而且抽象类也包含着各个属性,所以子类在实例化之前必须先对父类进行实例化。

            子类对象在实例化之前会默认调用父类的无参构造函数,此时子类隐含了一个super来调用父类的构造。

 

  • 抽象方法不能使用private声明

 

 

  • 抽象类与普通类

 

        抽象类与普通类其实就是多定义了一个抽象方法,除了不能直接进行对象的实例化外,其他操作并没有什么不同。

 

 

 

二、接口

 

        格式:

 

        interface    接口名称{

            全局常量;

            抽象方法;

 

        }

 

 

 

  • 抽象类与接口的关系

 

 

序号

区别点

抽象类

接口

1

定义

包含一个抽象方法的类

抽象方法和全局常量的一个集合

2

组成

构造方法、普通方法、抽象方法、常量、变量

全局常量、抽象方法

3

使用

子类继承抽象类(extends)

子类实现接口(implements)

4

关系

抽象类可以实现多个接口

接口不能继承抽象类、但允许继承多个接口

5

常见设计模式

模版设计

工厂设计、代理设计

6

对象

都通过对象的多态性产生实例化对象

都通过对象的多态性产生实例化对象

7

局限

抽象类有但继承的局限

接口没有此局限

8

实际

作为一个模板

作为一个标准或者一个能力

9

选择

如果抽象类和接口都可以使用,优先选择接口

如果抽象类和接口都可以使用,优先选择接口

10

特殊

一个抽象类可以包含多个接口

一个接口可以包含多个抽象类

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值