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

Java学习记录day8

类与对象

继承例题

https://www.bilibili.com/video/BV1PU4y1E7nX?p=55&vd_source=8f80327daa664c039f5c342a25bcbbae(B站千峰马剑威Java基础入门视频第P55,记录的重要学习内容之一)

final关键字

作用:

  1. 声明一个常量(常用规范命名建议全大写),修饰属性或修饰局部变量(最终变量),也成常量(不能改变);
  2. 声明一个方法,该方法为最终方法,且只能被子类继承,但是不能被子类重写;
  3. 声明一个类,该类为最终类,没有子类的类,无法被继承;
  4. 在方法参数中使用,在内部类中不能修改参数值,在内部类中详解。
public class Test{public static void main(String[] args){System.out.println(Constant.TEN_NUM);}
}
//常量类,常量可以另起一类定义防止访问时出问题
public final class Constant{public static final int TEN_NUM = 10;//常量通常这么定义(权限自定义)
}

抽象类

很多具有相同特征的和行为的对象可以抽象为一个类,很多和相同特征和行为的类可以抽象为一个抽象类;使用abstract关键字声明类为抽象类。
抽象类中有抽象方法、成员变量、构造方法和其他成员方法。
抽象类中的抽象方法,即只有定义没有实现,也就是没有大括号的内容直接把大括号换位了分号,然后在具体类中重写方法实现方法的具体功能,也就是说抽象类本身并不能运行也不能被实例化,就是用来作为父类被继承的。
抽象类不能个被声明为final

public class Test{public static void main(String[] args){Villa villa = new Villa();villa.color();villa.buildFloor();villa.buildTepy();}
}
public abstract class Building{private String name;private int age;public Building(String name) {this.name = name;}	// 抽象方法    没有方法的实现public abstract void buildTepy();//成员方法public void color() {System.out.println("colorful");}
}
//抽象方法可以继承抽象方法
public abstract class House extends Building{public abstract void buildFloor();
}
public class Villa extends House{@Overridepublic void color() {// TODO Auto-generated method stubSystem.out.println("red");}//在子类中实现@Overridepublic void buildTepy(){System.out.println("别墅");}@Overridepublic void buildFloor(){System.out.println("3层");}
}

接口

接口方便我们拓展代码,如果写好的系统想去添加功能,不用去找代码的相关模块并修改,直接使用接口添加,然后在主函数中电泳即可。
接口相当于特殊的抽象类,接口里面都是抽象方法,通过接口不能创建对象。
定义格式:
修饰符 interface 接口名 {
常量
抽象方法
default修饰的方法
static 修饰的方法
}

public class Test{public static void main(String[] args){Villa villa = new Villa();villa.color();villa.buildFloor();villa.buildTepy();}
}//与抽象类类似,接口类也可以被继承,这里不再写出,有兴趣可以尝试
public abstract class House{void buildFloor();//接口方法中可以不用修饰符,默认为public abstractvoid buildTepy();void color();//JDK1.8之后可用public default void print(){System.out.println("default");}
}
public class Villa extends House{@Overridepublic void color() {// TODO Auto-generated method stubSystem.out.println("red");}//在子类中实现@Overridepublic void buildTepy(){System.out.println("别墅");}@Overridepublic void buildFloor(){System.out.println("3层");}
}

多态

多态性是对象在运行的过程中的多种形态。父类变量可以引用子类的对象,调用相同的方法,展示多种形态(表现不一样),方法的重载和重写也是多态。
例:Dog dog = new SingleDog();
对象的多态性:
**向上转型:**将子类实例转为父类引用,会自动转换:父类 父类对象 = 子类实例 例:int i = ‘a’;
**向下转型:**将父类实例转为子类引用,强制转换: 子类 子类对象 = 父类实例 例:char c = (char)97;

instanceof关键字

用于检查对象是否为指定的类型,通常把父类强制转换为子类引用时要使用,以避免发生类型转换异常。
对象 instanceof 类型 返回boolean类型值
例:

if(singleDog instanceof Dog){}

一般用于判断一个对象是否为某个类的实例。

http://www.lryc.cn/news/4383.html

相关文章:

  • Solon2 开发之容器,三、注入或手动获取 Bean
  • 微信小程序_调用openAi搭建虚拟伙伴聊天
  • 硬件工程师入门基础知识(一)基础元器件认识(一)
  • TCP的运输连接管理
  • 地级市用电、用水、用气数据指标
  • 安装deepinlinuxV20.8配置docker和vscode开发c语言
  • java08-面向对象3
  • 【Spark分布式内存计算框架——Spark Core】8. 共享变量
  • C++多态常见面试题
  • 字母板上的路径 题解,力扣官方出来挨打(小声)
  • 代码随想录算法训练营第二十六天 | 39. 组合总和,40.组合总和II,131.分割回文串
  • vueday01-脚手架安装详细
  • 初识cesium3d(一)
  • 点云转3D网格【Python】
  • 【OpenCV图像处理系列一】OpenCV开发环境的安装与搭建(Ubuntu + Window都适用)
  • 【代码随想录】-动态规划专题
  • c++数据类型 输入输出
  • 【设计模式-11】责任链模式
  • SpringBoot+Vue实现智能物流管理系统
  • 【MT7628】MT7628如何修改串口波特率、调试串口物理口、使用UART3口
  • css盒模型介绍
  • onetab 谷歌插件历史数据清除
  • GRBL源码简单分析
  • 第一部分:简单句——第一章:简单句的核心——二、简单句的核心变化(谓语动词的情态)
  • 软考高级考试中有五大证书,其中哪个更值得考?
  • FlexRay™ 协议控制器 (E-Ray)-04
  • container_of 根据成员变量获得包含其的对象的地址!
  • Linux进程概念
  • 算法设计与分析
  • C++ 基础