1.9构造函数
构造函数是用来在对象实例化时初始化成员变量时用的。
Java中,构造函数的特点:
- 构造函数必须与类名相同,并且不能有返回值,不能为void;
class text{
int num;
public text() {}
public text(int num) {
this.num=num;
}
}
- 每个类可以有多个构造函数,当没有提供构造函数时,编译器会提供一个无参的默认构造函数;
- 如果出现了构造函数,那么编译器不再提供默认无参构造函数;
- 构造函数可以有任意多个;
- 构造函数总是伴随着new关键字使用,不能由程序编写者直接调用,必须要由系统调用;
- 构造函数的主要作用是完成对象的初始化;
- 构造函数不能被继承,因此不能被覆盖,但是可以被重载;
- 子类可以通过super关键字显式的调用父类的构造函数,当父类没有提供无参构造函数时,子类的构造函数中必须显式的调用父类的构造函数。
class text{
int num;
// public text() {}
public text(int num) {
this.num=num;
}
}
class Son extends text{
int fi;
public Son(int num) {
super(num);
}
}
在子类中必须对父类进行实例化,没有无参构造函数时,必须显式调用构造函数。
package exe;
public class demo2 {
public static void main(String[] args) {
Son s=new Son(2);
System.out.println(text.num);
}
}
class text{
static int num;
// public text() {}
public text(int num) {
this.num=num;
System.out.println("123");
}
}
class Son extends text{
int fi;
public Son(int num) {
super(num);
System.out.println("456");
}
// public Son() {
//
// }
}
1.10为什么Java中有些接口没有任何方法?
- 接口是抽象方法定义的集合,也可以定义一些常量值,是一种特殊的抽象类;
- 接口中只包含方法的定义,没有方法的实现;
- 接口中所有的方法都是抽象的,接口中成员的作用域修饰符都是public,接口中常量默认值是public static final修饰;
Java8开始,接口中可以定义default方法和static方法;
- 在Java中,有些接口内部没有声明任何方法,也就是说,实现接口的类不需要重写任何方法,这些没有任何方法声明的接口叫做标识接口,仅仅充当一个标识作用,用来标识实现他的类属于一个特定的类型。