继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
extends的意思是"扩展"。子类是父类的扩展。
Java中类只有单继承,没有多继承!(简单理解为一个儿子只有一个爸爸,一个爸爸可以有多个儿子)
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
子类和父类之间,从某种意义上讲应该具有"is a"的关系。
代码示例:
//在Java中,所有的类,都默认直接或间接继承Object
//Person 人:父类
public class Person /*extends Object*/{
public int money = 10_0000_0000;
public void say(){
System.out.println("我说两句!");
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
//学生 is 人:派生类,子类
//子类继承了父类,就会拥有父类的全部方法!
public class Student extends Person{
//Ctrl H
}
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.say();
System.out.println(student.money);
}
}
//输出结果
我说两句!
1000000000
Process finished with exit code 0
object类
Object类是Javajava.lang包下的核心类,Object类是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类; Java中所有的类默认继承Object类。
每日Java面试题
一、什么是channel?
一个Channel(通道)代表和某一实体的连接,这个实体可以是文件、网络套接字等。也就是说,通道是Java NIO提供的一座桥梁,用于我们的程序和操作系统底层I/O服务进行交互。
通道是一种很基本很抽象的描述,和不同的I/O服务交互,执行不同的I/O操作,实现不一样,因此具体的有FileChannel、SocketChannel等。
通道使用起来跟Stream比较像,可以读取数据到Buffer中,也可以把Buffer中的数据写入通道。
当然,也有区别,主要体现在如下两点:
- 一个通道,即可以读又可以写,而一个Stream是单向的(所以分InputStream和OutputStream)
- 通道有非阻塞I/O模式
二、Java NIO中最常用的通道实现?
- FileChannel:读写文件
- DatagramChannel:UDP协议网络通信
- SocketChannel:TCP协议网络通信
- ServerSocketChannel:监听TCP连接
三、Buffer是什么?
NIO中所使用的缓冲区不是一个简单的byte数组,而是封装过的Buffer类,通过它提供的API,我们可以灵活的操作数据。
与Java基本类型相对应,NIO提供了多种Buffer类型,如ByteBuffer、CharBuffer、IntBuffer等,区别就是读写缓冲区时的单位长度不一样(以对应类型的变量为单位进行读写)。
,