java面向对象OPP-三大特性(封装、继承、多态)+(接口、类)
2026/9/19 4:34:42 网站建设 项目流程

类和对象的创建

  1. 对象:具体的个体,如这辆车子,这个人,这只狗等,概括起来就是万物皆对象;
  2. 类:对象的抽象,如车子的抽象,所有车子的属性和行为,如小汽车都是4个轮子,能开动等。类是创建对象的模板,由属性和行为两部分组成;
  3. 类的创建:包括属性和方法,如下
packageoopDemo.test03;//class-类的关键字,类名Car,类的创建publicclassCar{publicintwheels=4;//类的属性以及赋值voidrun(){//类的方法System.out.println("能开动");}}
  1. 类对象的创建,实例化后调用类方法;
packageoopDemo.test03;//class-类的关键字publicclassApplication{staticvoidmain(String[]args){//类对象的创建,类对象car01Carcar01=newCar();car01.run();}}

构造器

  1. 构造器名必须和类名一致;
  2. 构造器没有返回值类型;
  3. 任何类都含有构造器。如果没有显式地定义类的构造器;
  4. 则系统会为该类提供一个默认的无参的构造器。一旦在类中显式地定义了构造器,系统就不会再为这个类提供默认的构造器了。
  5. 快捷键:Alt+insert,然后选择构造器,可选择无参或有参构造器;

  6. 构造器如下:注意下this关键字
packageoopDemo.test03;publicclassCar{publicintwheels=4;//类的属性voidrun(){//类的方法System.out.println("能开动");}publicCar(intwheels){this.wheels=wheels;//this关键字,指向当前对象;super关键字,指向父级对象System.out.println("我是构造器");}}

封装

  1. 隐藏对象的状态属性,使用private关键字定义声明属性私有,使用get或set方法设置、获取这个属性值;
  2. 高内聚,低耦合:类的内部数据操作都自己完成,仅暴露少量的方法给外部使用,如银行信息(所有信息以及运行不暴露给我们知道),你仅仅知道你自己的银行信息(只能操作自己的银行卡);
  3. 作用:①保护数据,提高数据安全性;②隐藏代码实现细节;③统一接口;④增强系统的可维护性;
  4. 参考代码以及注释:
packageoopDemo.test03;publicclassCar{publicintwheels=4;//类的属性privateStringCarlicenseCode;//设置成私有属性,达到封装voidrun(){//类的方法System.out.println("能开动");}publicvoidSetCarlicenseCode(){//为私有属性设置get方法this.CarlicenseCode=CarlicenseCode;}publicStringgetCarlicenseCode(){//为私有属性设置set方法returnCarlicenseCode;}publicCar(intwheels){this.wheels=wheels;//this关键字,指向当前对象;super关键字,指向父级对象System.out.println("我是构造器");}privatevoidtest(){//方法也可私有,也是封装System.out.println("方法也私有了哦");}}

继承

  1. extends关键字,单继承只能有一个父类;
  2. 父类可以有多个子类,如汽车—》大众汽车;汽车—》奔驰汽车;汽车—》宝马汽车;
  3. 他们的超级父类是Object
packageoopDemo.test03;publicclassBMWCarextendsCar{publicBMWCar(intwheels){super(wheels);}}

方法的重写–方法可以重写,属性不可

  1. 子类继承父类时,将父类的方法重写;
  2. 关键字: @Override
  3. 快捷键:Alt+insert,然后选择方法重写,然后选择需要重写的方法。具体操作可见构造器;
  4. 注意事项:①方法名必须和父类相同;②参数列表也要相同;③修饰符可以扩大不可以缩小;④抛出的异常范围可以缩小不可以扩大-----注意和重载的区别
packageoopDemo.test03;publicclassBMWCarextendsCar{publicBMWCar(intwheels){super(wheels);}@Override//父类方法重写voidrun(){super.run();}}

多态

  1. 一种事物的多种形态;
  2. 存在条件:①有继承关系;②子类重写父类方法;③父类引用指向子类对象;
packageoopDemo.test03;publicclassApplication{staticvoidmain(String[]args){//car01和car02都是具体对象,一个左侧是Car类实例化,一个是BMWCar,这就是多态Carcar01=newBMWCar(4);BMWCarcar02=newBMWCar(4);car01.run();}}

抽象

  1. abstract关键字,包括抽象类和抽象方法,就是类的抽象,具体由子类实现,抽象方法也就抽象类的子类中的方法实现
packageoopDemo.Test;//抽象类--关键字abstractpublicabstractclassAbstractDemo01{publicabstractvoiddosomething();//抽象方法:没有方法体publicvoidtest(){//这个是普通方法,有方法提System.out.println("----");}}
  1. 抽象类的子类,去实现抽象类
packageoopDemo.Test;//抽象类的方法必须重写,去实现他父类的方法publicclassAextendsAbstractDemo01{@Overridepublicvoiddosomething(){System.out.println("重写的方法");}}

接口

  1. 接口就是约束就是规范。
  2. 关键字interface,如接口代码
packageoopDemo.test03;//关键字interfacepublicinterfaceTimerService{voidtimer();//没有方法体}
  1. 接口实现,关键字implements
packageoopDemo.test03;//关键字implements, TimerService--这个是接口,这个UserServiceImpl是接口实现publicclassUserServiceImplimplementsTimerService{@Overridepublicvoidtimer(){//接口需要方法重写System.out.println("实现接口timer方法");}}
  1. 接口可以多个继承,使用逗号隔开
publicclassUserServiceImplimplementsUserService,TimerService{}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询