博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Day 09
阅读量:5101 次
发布时间:2019-06-13

本文共 1048 字,大约阅读时间需要 3 分钟。

子父类的构造函数

 在子类的构造函数中,第一行有一个默认的隐式语句:super()
 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数。

为什么子类实例化的时候要访问父类中的构造函数呢?

子类实例化细节

 构造器 显示初始化什么时候完成
 默认初始化 父类构造器 显示初始化
 Person p = new Person();
 1、JVM读取.class文件,并加载进内存
 2、堆内存开辟空间,
 3、对对象属性进行默认初始化
 4、调用构造函数进行初始化
 5、在构造函数中,调用父类构造函数并初始化
 6、对子类的属性进行显示初始化
 7、对子类构造函数的特定初始化
 8、初始化完毕,将值赋给引用变量
 
final关键字
 类 方法 变量
 修饰的类   不可以被继承
 修饰的方法 不可以被覆盖
 修饰的变量 只能赋值一次 变量名全部大写

抽象类

 abstract 方法以“;”结尾

特点

 1、方法只有声明,没有实现,需要使用abstract修饰,同时类也要被abstract 修饰
 2、抽象类不可以被实例化。
 3、继承的子类必须覆盖所有父类的抽象方法,才能被实例化。否者

细节

 1、抽象类有构造函数吗 有,用于给子类对象进行初始化
 2、抽象类可以不定义抽象方法吗 可以 目的是不让该类不创建对象。例:AWT的适配器对象就是这种类
 3、抽象关键字不可以和哪些关键字共存 private、static、final
 4、抽象类和一般类的异同点 都是用来描述事物;
    不同:描述事物的信息全和不全;有没有抽象方法;可不可以被实例化
 5、抽象类一定是一个父类么?
    是 需要子类覆盖其抽象方法

接口

 它里面的方法全是抽象方法,关键是interface;
 1、常见的成员 全局常量、抽象方法,都有固定的修饰符,不写自动添加
    public static final
    public abstract
 接口的成员都是公共的权限

实现 implements

 接口不能实例化

多实现

细节

 避免了单继承的局限性
 接口之间可以多继承,方法体是否重载

特点

 多实现、降低耦合、功能扩展
 
接口与抽象类的区别
 相同点:都是抽取的概念
 不同点:
 1、抽象是继承关系,单继承
    接口是实现关系,多实现
 2、抽象类是is a 关系
    接口是 like a 关系
 3、抽象类中可以定义非抽象方法
    接口的方法全是抽象方法,且有固定的修饰符

转载于:https://www.cnblogs.com/zhuzhuqwa/p/5879879.html

你可能感兴趣的文章
MySQL表的四种分区类型
查看>>
7.26
查看>>
dll--二进制层面的复用
查看>>
linux 压缩/解压缩/打包命令
查看>>
守护进程
查看>>
CLR 关于强命名程序集 .
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
idea 导入eclipse play1.2.7项目
查看>>
Jersey客户端API调用REST风格的Web服务
查看>>
Jetty性能调优
查看>>
Java设计模式
查看>>
Spring动态的切换数据源
查看>>
性能调优工具
查看>>
https的报文传输机制
查看>>
红黑树
查看>>
mybatis的源码学习
查看>>
leetcode(90)子集 2
查看>>
leetcode(85)最大矩形
查看>>
leetcode(121-123)买股票的最佳时机
查看>>
leetcode(105)从前序遍历和中序遍历构建二叉树
查看>>