面向对象的特点

数组
数组的定义
  1. int[] ad=new int[10];
  2. int [] ad={};
  3. int [] ad=int[]{};
  4. int ap[]=new int[]{}
  5. 定义的同时自动赋初值
static的用法以及特点
  • 用static定义的类,或者方法名,可以自接类名点 使用 调用 ,它的数据存在于方法区,并且只有一份, 静态块 static{}
  • 在类加载的时候运行,所以在静态块里面的数据,会在第一时间运行, 一般用来修饰,音乐,视频,
  • 非静态变量,不能再静态方法里使用,因为静态修饰的会第一时间加载
    在这里插入图片描述
    输出结果在这里插入图片描述

final

  • 通常用来修饰常量,(常量不可以被改变) 定义名称全部大写,单词之间用下划线来分开,一般用puablic 修饰

  • public static final int HELLO_WORLD=10;
    static final public int B=10;
    final static public int C=10;
    以上定义方式全部正确

  • 用final 修饰的 方法不能被重写,类不能被继承,变量不能被改变,通常一般不会单独使用,

  • 不会被自动转型

    重写与重载

重写
  • 发生在有继承的子类,和有实现接口的类
  • 方法名一样,返回类型一样,参数类型和个数要一样,访问权限修饰符,必须大于或者等于父类,
  • 静态方法不能被重写
  • final 修饰的方法不能被重写,但是可以被继承
  • 重写必须继承
  • 子类在调用的时候,要看父类的类型,如果不是则不能调用父类的重写方法
重载
  • 看方法的参数
  • 方法名一样’
  • 参数的类型或者 个数不一样

面向对象特点,封装,继承,多态

我的理解 , 就是把一个个 行为,和需要的属性,封装在一个类中,减少了复杂性

封装

  • 把类里私有的数据,(private) 通过(public) 行为公开来进行访问,让对象不能直接点出来进行修改数据,增加了数据的安全
  • 通过条件来使 属性不被胡乱修改,不会让私有属性直接暴露在其他类里
    在这里插入图片描述

继承

  • 关键字extends
  • 单继承,一个类只能继承一个父类, 如果该类没有继承,那么它将默认继承Object,所以以此推来,每个类都继承的Object
  • 如果父类有构造方法,会率先执行父类构造方法
  • 之类可以通过 super关键字来调用父类的构造方法进行传参,也可以通过 super点父类的方法进行调用
  • super 必须写在一个方法的第一行,和this 一样
  • super 代表着父类的实例

继承的好处

  • 增加代码的复用性,父类所拥有的,之类可以使用 private 修饰的除外 ,
  • 满足 is a (是一个)的特性 ,
  • 向上转型,增加了代码的扩展性
  • 子类可以重写父类的方法, 方法签名一样 返回值一样 ,之类的修饰访问权限,必须要大于 或者等于 父类

接口

  • 接口可以继承接口
  • 接口里面只能有抽象方法,和常量
  • jdk 1.8后,里面可以允许 静态方法
  • 一个类可以实现多个接口 关键字(implements)
  • 实现接口后必须实现里面的所有抽象方法
  • 接口的用途
  • 当在一个程序中,只有几个类需要实现同一个方法,而其他类不需要的时候 可以使用
  • 接口的好处

增加了程序的复用性,扩展性

多态

  1. 如果只有一个继承,那么实现多态,一定会用到向上转型,和重写
  2. 多个子类继承,同一个父类,并且重写父类的方法,不同的子类对象调用同一个方法,会有不同的作用.
  3. 对象的类型必须是父类
  4. 如果父类和子类有一个变量名相同,那么对象调用那个变量名,看对象的类型
    在这里插入图片描述

输出结果

在这里插入图片描述
如果一个子类,继承,又实现了接口,那么当它要创建对象调用方法的时候,对象的类型,决定他可以调用什么方法,如果类型是接口那么它只能调用接口和它自己的方法,不能去调用继承的方法

对象的强制转换

  1. 看对象的类是否实现接口,或者继承与某个父类,如果继承或者实现了,就可以强转,

  2. 达到了不同的类型调用不同的方法,对象多态

  3. 请看以下例子

  4. 在这里插入图片描述

  5. 这里p它只能输出 ap接口里的方法
    再看一个例子:

  6. 在这里插入图片描述

抽象类

  • abscract 修饰
  • 抽象类里面允许普通方法 ,抽象方法 main函数
  • 可以继承抽象类,可以实现接口
  • 如果派生类,类型比较统一,且又少,那么可以考虑使用抽象类
  • 因为抽象类,只能extends 扩展性不好
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值