Java面试_君哥笔记_java面向对象_3抽象类和接口有什么区别、接口是否可以继承接口、private修饰的方法可以通过反射访问,那么private的意义是什么_ java类的初始化/执行顺序代码块

系列文章目录

abstract class(抽象类)和interface(接口)有什么区别

在这里插入图片描述
抽象类,是一个类,它只是用abstract去修饰了

而接口 ,接口并不是类。类是用class定义,而接口是inteface定义

接口里面的方法默认是public 修饰的,并且接口中所有的方法不能有实现(java8以后有默认的实现)

抽象类可以有非抽象方法

接口中的变量默认是 final 抽象类中不一定
所以在接口中定义一个变量,这个变量就是常量,但是抽象类中不能这样写抽象类中必须我们自己加上final才行

一个类可以实现多个接口,但只能实现一个抽象类

一个类实现一个接口,必须要实现这个接口中的所有方法,但是抽象类不一定,因为抽象类里面可能有普通方法,不需要实现,只需要实现它的抽象方法

接口不能用new去实例化,如果用new去实例化就相当于重写了它的所有方法,只有在内部类或者监听回调事件的时候才有可能去new接口
而抽象类是可以new去实例化的,但是我们也一般不new抽象类,

抽象类是一种对类的设计,是一种模板
接口是一种行为的抽象

为什么抽象类是一种对类的设计,是一种模板
接口是一种行为的抽象

在这里插入图片描述

接口是否可以继承接口

接口是否可以继承接口,盲猜是不行的,继承不是类与类之间吗,接口不是类所以不行
正确答案:可以
接口是可以继承接口的
在这里插入图片描述

private修饰的方法可以通过反射访问,那么private的意义是什么

这道题问得特别好,也很重要
private是访问修饰符,表示的是私有的,但是它并不是保证绝的的不允许别人访问
它不是针对程序安全去设计的
他主要是针对我们开发人员在开发的过程中能够很直观的很容易的发现这些错误,并且避免
这就好像你家里建了一个围墙,但是别人要是实在想翻过来还是可以借助工具翻过来的,那你这个围墙还有什么意义呢
所以不能这么说,我们建围墙不是绝对的想阻拦别人进来,只是让别人知道,你们家建了围墙了,我进去可能有难度,
那么这样一般人就不会进来,如果没有围墙,所有人都可以进来,更加的没有安全性可言

java类的初始化顺序

在这里插入图片描述
当我们new一个子类的时候,它里面的顺序是怎么样的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值