Java大数据开发和安全开发
(一)Java的接口
1.1 认识接口
- Java提供了一个关键字**
interface
**,用这个关键字我们可以定义出一个特殊的结构:接口。 - 接口中的变量默认为常量
- 接口中的成员方法默认为抽象方法
- 接口中不能有除了常量方法外的其他成员
- 接口不能被创建对象
注意:接口不能创建对象;接口是用来被类实现(implements)的,实现接口的类称为实现类。 implements也可以当作继承 实现类也可以叫子类
一个类可以实现多个接口(接口可以理解成干爹),实现类实现多个接口,必须重写完全部接口的全部抽象方法,否则实现类需要定义成抽象类。
创建两个接口
public interface B {
void testb1();
void testb2();
}
public interface C {
void testc1();
void testc2();
}
创建一个实现类,重写全部方法
public class D implements B,C{
@Override
public void testc1() {
}
@Override
public void testc2() {
}
@Override
public void testb1() {
}
@Override
public void testb2() {
}
}
在写一个测试类,D继承了所有的接口,自然就可以调用所有的接口方法
public class Test {
public static void main(String[] args) {
// 目标:认识接口。
D d = new D();//就可以调用所有方法了
}
}
接口的好处(重点)
- 弥补了类单继承的不足,一个类同时可以实现多个接口。
- 让程序可以面向接口编程,这样程序员就可以灵活方便的切换各种业务实现
代码演示A不仅继承了student 还继承了接口drive sing 可以实例化成任何一个类,然后调用他们的方法,这让A同时具有了多种角色,A既是司机又是student还是歌手 弥补了之前一个类只能继承一个角色的不足
public class jiekou {
public static void main(String[] args) {
Singer s=new A();
s.sing();
Driver d = new A();
d.drive();
Student t = new A();
t.Study();
}
}
class A extends Student implements Driver,Singer{
@Override
public void drive() {
}
@Override
public void sing() {
}
}
class Student{
public void Study(){
}
}
interface Driver{
void drive();
}
interface Singer{
void sing();
}
让程序可以面向接口编程,这样程序员就可以灵活方便的切换各种业务实现
上边这句指的是下面这里司机这个方法我们可以灵活切换角色 d司机和c司机 很方便 不需要重新写
public class jiekou {
public static void main(String[] args) {
Singer s=new A();
s.sing();
Driver d = new A();
d.drive();
Driver c = new A();
c.drive();
Student t = new A();
t.Study();
}
}
这里使用的父类指向子类 animal=cat 但是我们想换成dog 其实就需要把cat改成dog就行
Animal a= new Cat();
a.cry();
Animal a= new Dog();
a.cry();