昨天四级,痛斥食堂二十多分钟,写挺爽的,把不满都给写了出来,就是…分没了
哎罢了罢了
接口
这样看来接口和类,并没有什么太大的区别,但是既然存在即合理,必然有其存在的道理
接口中的变量
接口中变量默认是final不可更改
例如:一下例子中的 test2类中的num,就相当于
public final static int num=100;
(好长一段修饰符)
接口中的方法
构造方法
接口中不允许有构造方法,接口是没有构造方法
object类是所有类的超类
一般方法
一般方法都是抽象方法,不允许有方法体
public class b {
public static void main(String[] args) {
test1 t1 = new test1();
test2 t2 = new test2();
t1.function();
t2.function();
System.out.println("t1数值" + t1.num);
System.out.println("t2数值" + t2.num);
System.out.println("接口静态数值" + test2.num);
}
}
abstract class c1 {
public int num = 10;
public abstract void function();
}
interface f1 {
public int num = 100;
public abstract void function();
}
class test1 extends c1 {
public void function() {
System.out.println("这是test1,继承c1类");
}
}
class test2 implements f1 {
public void function() {
System.out.println("这是test2,实现f1接口");
}
}
案例:
public class b {
public static void main(String[] args) {
WhitePerson p1 = new WhitePerson();
BlackPerson p2 = new BlackPerson();
p1.show();
p2.show();
}
}
interface person {
void show();
}
class WhitePerson {
void show() {
System.out.println("这是白人");
}
}
class BlackPerson {
void show() {
System.out.println("这是黑人");
}
}
迄今为止,所以我们可以知道,java中多态有三种方式
类继承:不同子类,类型是左边,运行是右边
抽象类继承:用于抽象无法具体化的特征,然后再去继承
接口实现:在抽象的基础上,严格限定了方法都为抽象类,变量成员都是fianl static
.
.
.
.
.
抽象类是可以带有构造的
public class b {
public static void main(String[] args) {
c2 test = new c2();
test.function();
}
}
abstract class c1 {
abstract void function();
c1() {
System.out.println("这是构造");
}
}
class c2 extends c1 {
void function() {
System.out.println("这是方法");
}
}
接口是为了实现多继承而存在
接口与接口之间是继承
类与接口之间是实现
多继承展示
public class b {
public static void main(String[] args) {
}
}
interface Person {
void Showperson();
}
interface Person2 {
}
// 多继承,person3接口同时继承了person2,person
interface Person3 extends Person2, Person {
}
// 多继承,person4 类同时实现了person2,person
class person4 implements Person, Person2 {
public void Showperson() {
System.out.println("this is show");
}
}