-
接口
(1) 修饰一个接口的只可能有一种: public
原因:abstract是冗余的,因为接口本来就是特殊的抽象类;
final是Java规定的不可以
(2) 接口中最标准的方法,默认就是abstract + public,因此用abstract或public修饰这些方法是冗余的
(3) 接口中的变量只能是 public static final的
public的原因:接口没有实例,必须有实体类implement,不是public没有意义
static的原因:接口没有实例,其中的变量应该属于类,不属于某个对象(如果一个实体类实现了多个接口,如果不是static的话会有重名现象)
final的原因:接口定义的是协议,协议中包括了要实现的方法和必须有的变量,这些变量不应该被实现类随便更改
(4) 接口中的绝大多数方法都是没有函数体,只有声明,加上分号;
但是,1.8以后,可以有两种方法出现函数体,一种是 static修饰的类方法,一种是default修饰的成员方法,但是static和default不能连用
示例
public interface Solution { int a = 3; static void printA() { System.out.println(a); } default void display() { System.out.println("display"); } }
-
对象的复制
(1) 除了基本类型是值传递以外,其他都是引用传递
(2) 函数参数传值时使用引用传递,使用"="赋值时也采用引用传递
(3)
浅复制:基本类型复制成相同值,对象和被复制对象指向同一块地址
深复制:基本类型复制成相同值,对象new一个新对象,逐层复制直到复制到基本类型为止
(4) 使用clone()方法
1° 实现Cloneable接口(Cloneable接口没有任何方法,只是一个标识)
2° 重写Object类的clone()方法
3° 在clone()方法中调用 super.clone();
chapter04_Java基础知识_3_接口,对象的clone
最新推荐文章于 2022-11-27 20:05:36 发布