首页 > 其他分享 >day11

day11

时间:2023-03-18 16:44:55浏览次数:32  
标签:变量 对象 子类 接口 day11 抽象类 父类

day11

子类构造器的特点

  • 子类的全部构造器,都会先调用父类的构造器,再执行自己,即默认在子类构造方法第一行存在一个super();(不写也默认存在)
  • 如果父类没有无参数构造,我们必须手动的在子类构造器添加super(.....);

如何快捷生成子类构造

先实现父类构造,再选择子类成员变量

多态

多态是在继承/实现情况下的一种现象,表现为:对象多态,行为多态

父类引用子类对象

new 对象的快捷键 Ctrl+Alt+V

变量的类型是什么,就必须给这个变量赋值什么样的类型

注意:如果这个变量是引用类型,赋值赋的是一个对象(本类对象,子类对象)

多态的本质

多态的本质就是父类指针指向子类对象

父类只能访问自身可访问的函数;

在栈里定义父类引用指向堆里子类对象,如果子类和父类都有同样的成员变量 对象里会有两份这个成员变量,对哪个成员变量进行操作依具体情况而定

如果没有,则子类会直接使用父类成员变量进行操作

子类对象里会有super的全部属性

instanceof关键字可判断某个对象是否属于某个类

final关键字

  • final可以修饰类、方法、变量
  • 修饰类:该类不能被继承
  • 修饰方法:方法不能被重写
  • 修饰基本类型变量:该变量只能被赋值一次
  • 修饰引用类型变量:引用变量地址值不可以改变

final类似于c++里的const

快捷键:

ctrl+shift+U:切换大小写

Ctrl+Alt+V:自动补全new的代码

Ctrl+Alt+M:抽取方法

抽象类

  • 抽象类中不一定有抽象方法,有抽象方法的一定是抽象类
  • 类该有的成员抽象类都可以有
  • 最关键的特点:抽象类不能有实例,仅仅作为一种特殊父类让子类继承并实现
  • 一个类继承抽象类,必须写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类

抽象类的应用:

模板方法设计模式

解决方法中存在重复代码的问题

写法

  • 1.定义一个抽象类

  • 2.在里面定义2个方法(一个是模板方法(最好用final修饰):把相同代码放里面;一个抽象方法:具体实现交给子类完成)

    接口

    接口中定义的成员变量都是常量——默认被public final static 修饰

接口不能创建对象,可以创建一个接口的实现类来创建对象

接口的好处

  • 弥补类单继承的不足
  • 让程序可以面向接口编程,根据规范开发
  • 面向接口开发,可以灵活方便的切换各种业务实现

接口的多继承

一个接口可以同时继承多个接口

多继承的好处

便于实现类去实现

finalize()方法

类似于c++的析构函数,在对象被销毁时执行,由于Java自动进行垃圾回收,所以不知道JVM何时会执行检查与回收操作,可以使用System.gc();提醒Java检查是否有没被指向的对象,有则进行释放。

标签:变量,对象,子类,接口,day11,抽象类,父类
From: https://www.cnblogs.com/xkh-blogs/p/17231090.html

相关文章

  • day11
    day11子类构造器的特点子类的全部构造器,都会先调用父类的构造器,再执行自己,即默认在子类构造方法第一行存在一个super();(不写也默认存在)如果父类没有无参数构造,我们必须手......
  • 路飞项目day11
    上节回顾#1课程相关数据录入-simpleui中录入-使用sql录入,在media下图片copy过去#2课程分类接口#3查询所有课程接口-带排序:人气,价格......
  • Linux & 标准C语言学习 <DAY11>
    一、指针  1、什么是指针    指针是一种特殊的数据类型,使用指针可以定义指针变量,指针变量存储的是整形数据,该数据代表了内存的编号(地址),可以通过这个编号......
  • Day11-综合案例
    1.面向接口的开发(spring的ioc)掌握1.问题我们之前在servlet中创建业务层对象:UserServiceImplservice=newUserServiceImpl();UserServiceImpl属于一个类弊端:如......
  • day11 (2023.3.11)
    1.String字符串12.String字符串2 运行结果: 3.内部类 测试类和运行结果: 4.静态内部类和运行结果: 5.匿名内部类和局部内部类 面向对象基本完结。da......
  • day11
    包机制packagecom.xiao.operator;importcom.xiao.base.*//*导入所有类importjava.util.Date;publicclassDemo05{publicstaticvoidmain(String[]......
  • day11 打卡20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求
    day11打卡20.有效的括号1047.删除字符串中的所有相邻重复项150.逆波兰表达式求值20.有效的括号20题目链接1.本来使用的是Stack,时间2ms,内存39.6MB。而Deque时间......
  • HTML——day11
    css的元素的显示模式元素的显示模式:指的是将标签分成不同的种类,我们可以更好的选择使网页得到更好的布局分为块元素(div一行只要一个)和行内元素(span一行中好几个)块元素:h......
  • 02_11_Java语音进阶||day11_网络编程【TCP|UDP】
    第一章网络编程入门1.1软件结构两种架构各有优势,但是无论哪种架构,都离不开网络的支持。“网络编程”,就是在一定的协议下,实现两台计算机的通信的程序1.2网络编程三要素_网......
  • Linux学习-DAY11
    7.2LVM逻辑卷管理器LVM是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进......