当前位置: 首页 > news >正文

Java-封装、继承、多态

封装

访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。

继承

继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。

只要创建一个类,就隐式继承自Object父类。如果指定了父类,那么父类就继承于Object类。

多态

指的是同一个行为具有多个不同表现形式。多态的实现具有三种重要条件:

  • 继承
  • 重写父类方法
  • 父类引用指向子类对象
public class Fruit {int num;public void eat(){System.out.println("eat Fruit");}
}public class Apple extends Fruit{@Overridepublic void eat(){super.num = 10;Ststem.out.println("eat " + num + " Apple");}public static void main(String[ args]){Fruit fruit = new Apple(); // 这就是多态,父类引用指向子类对象,因为Apple继承于Fruit,并且重写了eat方法,所以能够表现出来多种状态的形式。fruit.eat();}
}

组合

就是将对象引用放在新类中。组合是提高类对的复用性的一种方式。如果希望类更具有扩展性,多用组合,少用继承

public class dinner {private String name;private Fruit fruit;
}public class Fruit {private String name;private String color;
}

组合和继承的区别

代理

除了继承和组合外,另外一种关系模型成为“代理”。

A想要调用B类的方式,A不直接调用,A会在自己的类中创建一个B对象的代理,再有代理代用B的方法。

向上/向下转型

  • 向上转型:通过子类对象(小范围)转化为父类对象(大范围),这种转换是自动完成的,不用强制。
  • 向下转型:通过父类对象(大范围)实例化子类对象(小范围),这种转换不是自动完成的,需要强制指定。

static

static是Java中的关键字,它的意思是“静态的”。可以用来修饰成员变量、方法、代码块。

  • 静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序的执行期间都有效。
  • 静态方法,该方法可以直接通过“类型.方法名”进行调用。静态方法中不能访问类的非静态成员、方法。
  • 静态代码块,用于类的初始化操作。进而提升程序的性能(静态代码块随着类的加载而执行,很多时候将只需要进行一次的初始化操作放在static代码块中)。

final

代表最终的,不可改的。用来修饰类、变量、方法。

  • final修饰类时,表面这个类不可被继承。final类中方法,会被隐式的final修饰。
  • final修饰方法时,表面这个方法不能被子类重写。
  • final修饰变量时,有来两种情况。
    • 修饰基本数据类型,表示该数据类型的值不可被修改。
    • 修饰引用类型,表示该引用不可再指向另外一个对象。
http://www.lryc.cn/news/25018.html

相关文章:

  • 问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)
  • 恢复谷歌翻译的究极方法
  • string函数以及string常用接口
  • 分享一篇由C语言实现《数据结构》无头无循环单链表
  • C盘爆满?两个超简单的解决办法
  • ThreadLocal
  • Java基础:JDK7-时间Date
  • 什么是IP地址?
  • 4年经验之谈,什么是接口测试?怎样做接口测试?
  • 普通指针扫盲
  • 深度学习笔记:神经网络权重确定初始值方法
  • 关于 python 的异常使用说明 (python 的文件和异常)
  • Spark RDD持久化
  • 【Linux】Linux系统安装Python3和pip3
  • 用java进行base64加密
  • torch函数合集
  • AcWing算法提高课-3.1.2信使
  • Paddle OCR Win 11下的安装和简单使用教程
  • 杂谈:数组index问题和对象key问题
  • 三天Golang快速入门—Slice切片
  • 腾讯会议演示者视图/演讲者视图
  • 【C++】类与对象(一)
  • JavaScript基本语法
  • OpenCV4.x图像处理实例-道路车辆检测(基于背景消减法)
  • pwnlab通关流程
  • 面向过程与面向对象的区别与联系
  • 主机状态(查看资源占用情况、查看网络占用情况)
  • 代码随想录算法训练营第四十一天 | 01背包问题-二维数组滚动数组,416. 分割等和子集
  • VMware NSX 4.1 发布 - 网络安全虚拟化平台
  • 计算理论 复杂度预备知识