## 接口
-接口是一个抽象的类型,是抽象方法的集合,通常以interface来声明。
一个类通过继承接口的方式,来继承接口的抽象方法。
-类描述对象的属性和方法,接口则会包含类要实现的方法
- 接口的定义格式:
public interface 接口名{
//抽象方法
void test();
}
接口与类有什么区别
- 接口不能用来实例化对象
- 接口中的所有方法必须是抽象的方法(没有具体的方法体)
- 接口没有构造方法
- 接口不是被类继承了,而是要被类来实现
接口所具有的特性
- 接口中的每一个方法都是隐式抽象的
- 接口中的方法是不能在接口中被实现的,只能由实现接口的类来实现接口中的方法
- 接口中的方法是公有的
- 接口可以多继承
接口的实现
当类实现接口的时候,要实现接口中的所有的方法。类使用implements关键字来实现接口
在类声明中,implements关键字放在class声明之后
package y20220227;
public class Demo {
public static void main(String[] args) {
C c = new C();//实例化子类对象
c.print();
c.scanf();
}
}
interface A{//接口A
void print();
}
interface B{//接口B
void scanf();
}
class C implements A,B{//同时实现了两个接口
public void print(){
System.out.println("接口A的抽象方法");
}
public void scanf(){
System.out.println("接口B的抽象方法");
}
}
监听器重写
package y20220227;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class UI {
public static void main(String[] args) {
new UI().initUI();
}
public void initUI(){
//创建一个窗体对象
JFrame jf = new JFrame();
jf.setTitle("接口事件");
jf.setSize(500,300);//窗口尺寸
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置布局 自动布局
jf.setLayout(new FlowLayout());
//创建组件对象
//标签 只显示内容不显示组件本身
JLabel namejla = new JLabel("账号: ");
JLabel pwdjla = new JLabel("密码: ");
//输入框 文本 密码
JTextField nameInput = new JTextField();
JPasswordField pwdInput = new JPasswordField();
//按钮
JButton btn = new JButton("登录");
//设置尺寸
Dimension dim = new Dimension(400,35);
nameInput.setPreferredSize(dim);
pwdInput.setPreferredSize(dim);
//将各个组件添加
jf.add(namejla);jf.add(nameInput);
jf.add(pwdjla);jf.add(pwdInput);
jf.add(btn);
//监听器的实现
ButtonAction btnaction = new ButtonAction();
btnaction.nameInput = nameInput;
btnaction.pwdInput = pwdInput;
btn.addActionListener(btnaction);
jf.setVisible(true);//显示在屏幕上 注意组件填充完整
}
}
class ButtonAction implements ActionListener{
JTextField nameInput;
JPasswordField pwdInput;
public void actionPerformed(ActionEvent e ){
String name = nameInput.getText();
String pwd = pwdInput.getText();
if (name.equals("ylj") && pwd.equals("12345")){
JOptionPane.showMessageDialog(null,"账号密码输入正确");
}
else{
JOptionPane.showMessageDialog(null,"Wrong");
}
}
}