java-面向对象的理解和三大特征、抽象类和接口

面向对象:在这里插入图片描述
面向对象的三大特征:封装、继承和多态(还有抽象也是很重要的

  1. 封装:将类的某些信息隐藏在类的内部,不允许外部对其直接访问,但是可以通过该类提供的方法来实现对隐藏信息的操作和访问。
    特点:尽可能的隐藏了类的实现细节
  2. 继承:从已经存在的类中定义新的类。子类(派生类)继承了所有父类(基类)中能继承的属性和方法,并且可以增加父类中没有的功能。
    实现方法:class A extends B ,A继承于B
    优点:避免冗余并使系统更易于理解和易于维护
    方法重写:返回值类型、方法名、参数类型、参数顺序、参数个数都必须与父类相同
    注意与重载的区别,最简单的区分就是重载在一个类中,重写存在于子类中
    重写和覆盖的区别:重写有多态,覆盖没有多态
    继承时的实例化顺序:父类和子类的静态成员、父类对象构造、子类的对象构造
    还有一个不得不提的super关键词:
    1)用super操作被隐藏的成员变量和方法
    2)用super调用父类的构造方法,super必须是子类构造方法的头一条语句
    PS:super是父类对象的默认引用,super()和this()不能同时出现(都要求在第一句)
    this和super均不能在静态方法中使用
  3. 多态:同一种调用产生不同的效果
    实现条件:1)继承、2)重写(覆盖),3)通过父类的引用去访问继承对象中不同类的对象
    分类:1)编译时多态:方法重载(静态多态)
    2)运行时多态:在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法(动态多态)

抽象类和接口:

  1. 使用场景不同;
    抽象类,拥有一些方法并且想让他们中的部分有默认实现
    接口: 实现多重继承,在实现接口的同事也可以不影响其继承与实现其他接口的功能,在某种程度上弥补了java只能单继承的缺点
  2. 两者的比较
    抽象类:用abstract进行声明
    只知道子类应该包含怎样的方法,但是无法知道子类如何实现这些方法
    抽象类不能被实例化,只能被继承,可通过向上转型进行对象实例
    包含抽象方法的类时抽象类,但是抽象类不一定含有抽象方法
    子类如果没有实现父类的抽象方法则子类也要定义为抽象类
    abstract 不能与static、final、private共存
    接口 :用interface声明, 子类通过implements来实现接口
    接口中只允许抽象方法存在,
    接口也无法进行实例化,接口方法只能有接口的实现类实现
    一个类可以实现多个接口
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值