Java面向对象(继承)

  1. 继承(子类的super指向父类的地址)
  • 允许创建分层次等级的类
  • 子类继承父类的特征(属性)和行为(方法)
  • 只能单继承、多重继承:父类的父类(无多继承:一个子类不能有多个父类)
  • 当创建子类的对象时 先创建一个父类的对象
             
  • super关键字
    • super访问父类的构造方法(包含super的构造方法必须将super写在第一行、this与super不能同时调用别的构造方法)
    • super访问父类的属性
    • super访问父类的方法
  • 实例:
    •  
2. 重写(方法的重写)
  • 子类与父类的方法名称一样
  • 参数列表、返回值类型完全相同
  • 访问权限不饿能比父类的被重写方法权限更低
  • 父类的成员方法只能被子类重写 
  • 静态与私有的方法不能被重写(因为继承不到)
 
重写(override)与重载(overload)的区别:
 
 
位置
参数列表
返回值
访问权限
异常处理
重写
子父类
必须相同
必须相同
子类权限不能小于父类
子类异常范围更小,但是不能抛出新的异常
重载
一个类中
必须不同
与返回值无关
与返回权限无关
与异常无关
    
  1. final 关键字
  •     final修饰属性、变量
    • 局部变量一旦赋值则成为了常量、无法再次进行赋值
    • 成员变量(即成员属性)必须在声明时赋值
    • 全局常量(public static final)
    • 常量的命名规范:单词与单词之间必须使用下划线隔开,单词中所有的字母大写
  •     final修饰类
    • 不可以被继承
  •     final修饰方法
    • 不能被子类重写
  1. 抽象类(含有不确定的方法)
只声明而未实现
  • 使用 abstract class 声明
  • 不能被实例化:
    • 不能直接 new 来建立对象使用
    • 必须被子类继承,子类必须覆写(即重写)父类中的所有抽象方法 
  • 抽象方法:
          格式:
                 abstract class 类名 { // 抽象类
                    public abstract void 方法名 () ; // 抽象方法,只声明而未实现
                 }
  • 常见问题:
    • 不能被 final(无子类) 声明
    • 不能被 new 来进行创建 但是java在加载类的时候通过构造方法实例化(创建对象)了类的非抽象部分的对象
    • 抽象类必须使用 public 或 procted 修饰
  1. 接口
  • 如果一个类中的全部方法均为抽象方法、全部属性都是全局常量,那么即可定义为接口
  • interface 接口名称 {
                            全局常量 ;(可以省略 public static final)
                            抽象方法 ;(可以省略 public abstract)
             }
  •     面向接口的编程思想 (定义与实现的分离)
    1. 降低程序的耦合性(互相之间的粘性)
    2. 易于程序的扩展与维护
  •     接口的实现(可以多实现):
         class 子类  extends 父类  implements 父接口 1, 父接口 2...{
            }
  •     接口的继承(因为接口不存在接口的实现,所以可以多继承)
         interface C extends A,B{
            }
  •     接口无构造方法、在加载时也米有接口本身的实例(无本身对象的创建)
 
 
        
        
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值