java面向对象(继承,抽象类,接口知识点概括)

面向对象(二)

  1. 继承(单继承方式:即每个子类只能有一个直接父类

·继承是面向对象程序设计的又一重要特性,是面对对象编程技术的一块基石,因为它允许创建分等级层次的类,继承是可以实现代码复用的重要手段

·语法规则:【访问权限】class 子类名 extends 父类名;

:(其中extends是继承关键字,后面跟着父类的类名,如果没有extends子句则这个类直接继承Object。需要注意的是:父类名所指定的类必须是在当前编译单元中可以访问的类,否则会报错)

·覆盖:子类除了可以继承父类中的成员方法成员变量,还可以增加自己的成员方法和成员变量,也可以根据需要重写父类的方法。

1成员变量的覆盖:子类中定义的成员变量和父类中的成员变量同名,不管其类型是否是相同,父类中的同名成员变量都要被隐藏,子类就无法继承该变量了。

2成员方法的覆盖:子类中定义的成员方法和父类中的成员方法在方法名,返回类型,参数个数及类型方面都相同。

3覆盖规则:    --.覆盖方法的返回值类型必须与它所覆盖的方法相同。

                        --.覆盖方法分的参数类型和参数个数与它所覆盖的方法同。

                        --.覆盖方法不能比其所覆盖的方法访问权限小。

                        --.覆盖方法不能比它所覆盖的方法抛出更多的异常。

·super关键字:

    1 .访问被子类隐藏的超类的成员变量和成员方法,语法格式为:

          Super.数据成员

          Super.成员方法(参数)

    2.调用父类的构造方法(必须写在子类构造方法中的第一行

          Super.(<参数列表>)

·final关键字:

  1. 表示含义:final关键字代表最终的、不可改变的,不能派生子类。
  2. 常见用法:1修饰
例:public final class 类名称 {

                                            ...

}

作用使当前这个类不能有任何子类
注意一个类如果是final的,那么其中所有的成员方法都无法                                 进行覆盖重写

2修饰方法

例:   修饰符 final 返回值类型 方法名称(参数列表) {

                                       方法体

           }

作用:当final关键字用来修饰一个方法的时候,这个方法就是最终方法,不能够被覆盖重写

注意:对于类、方法来说,abstract关键字和final关键字不能

同时使用,因为作用相互矛盾

3修饰局部变量

例:final 基本数据类型 数据名称 = ;

注意:当final关键字用于修饰局部变量的时候,这个局部变量不能更改,“一次赋值,终生不变”。

4修饰成员变量

-由于成员变量具有默认值,所以用了final之后必须手动赋值,

不会再给默认值。
 

(二)抽象类

        -没有足够的信息来描述一个具体的对象

        -只用于继承,不能用于创建对象

        -一个抽象类一般包括一个或者多个抽象方法

  1. 抽象类的实现

-抽象类有abstract修饰,语法格式为:

abstract calss 类名{

类成员定义

}

  1. 可以在抽象类中声明并实现方法
  2. 抽象类的子类必须实现父类的所有的抽象方法后才能实例化,否则这个子类也会成为抽象类。
  3. 抽象类不能实例化。
  4. 抽象方法

·只声明而没有实现的方法称为抽象方法

·语法格式:

  abstract 返回值类型 抽象方法名(【形式参数列表】)

·构造方法不能定义为抽象方法

·最终方法不能定义为抽象方法

·static和private修饰符不能用于抽象方法

·含有抽象方法的类必须被声明为抽象类,抽象类不能被实例化

(三)接口(interface)

  • 接口的概念

·抽象方法和常量值的集合,实现多重及策继承的效果

·一种特殊的抽象类,在某个类中要使用这个接口时,就要在这个类的定义时声明要实现某个接口

  • 接口的定义

·接口的语法格式:

【修饰符】 <interface> <接口名> extends 父接口列表】{

public static final 变量名=初始值;//静态常量

public abstract 返回值 方法名(【参数列表】 throws【异常列表】)

}

·接口用关键字interface来定义,而不是class

·接口采用多重继承机制,而不是采用类的单重继承机制

  • 接口的继承

public interface A extends BC{

//接口中的语句

}

  • 接口的实现

·语法格式;

类修饰符 class 类名 extends 父类名】【implements 接口名列表】{

//类中重写接口的抽象类

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值