对Java单继承的弥补——接口
接口主要用来实现多重继承,它是常量和方法的集合,这些方法只有声明没有实现,即接口本身是抽象的,系统默认用abstract修饰。
1.接口的定义:
public interface A{
int A=1;//默认为public static final常量
void displayA();//默认为public abstract抽象方法
}
带默认方法的接口定义:
interface B
{
int B=2;//常量
public void print();//抽象方法
default public void otherprint()//带方法体的默认方法
{
System.out.println(B);
}
}
default方法称为虚拟扩展方法,是指:在接口内部包含一些默认的方法实现,使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。
2.接口可以实现多重继承:
interface A{
int A=1;
void displayA();
}
interface B{
int B=2;
void displayB();
}
interface C extends A,B{
int C=3;
void displayC();
}
class ABC implements C
{
public void displayA()
{
System.out.println(A);
}
public void displayB()
{
System.out.println(B);
}
public void displayC()
{
System.out.println(C);
}
}
public class T04
{
public static void main(String[] args)
{
ABC a = new ABC();
ABC b = new ABC();
ABC c = new ABC();
a.displayA();
b.displayB();
c.displayC();
}
}
上面的例子中,接口C多继承了接口A和B,类ABC通过实现接口C,同时实现了接口A和B 中的方法,这就是多继承的一种体现。
一个类也可以同时实现几个不同的接口:
class ABC implements A,B,C{}//这行代码和例子中的红色字体效果是一样的
3.接口和抽象类的区别:
接口中只有抽象方法,没有普通方法;接口无构造方法。
接口不能被继承,只能被实现。
上述:public class ABC implements C{}就是类实现接口的方法。
4.接口中定义的常量可以直接用类名访问。
System.out.println(ABC.A);
5.GUI程序事件处理——接口使用一例。
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*; public class EventDemo extends JFrame implements ActionListener
{
JButton button1 = new JButton("登录");
JButton button2 = new JButton("取消");
JTextField jtf = new JTextField(20);
public EventDemo()
{
add(jtf);
add(button1);
add(button2);
button1.addActionListener(this);//为按钮注册事件监听器
button2.addActionListener(this);
setSize(600,350);
setVisible(true);
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)//实现接口中的抽象方法
{
if((JButton)e.getSource()==button1)
jtf.setText("***");
else
jtf.setText("&&&");
}
public static void main(String[] args)
{
EventDemo frame = new EventDemo();
}
}
对Java单继承的弥补——接口的更多相关文章
- Java实现接口用来弥补Java单继承的缺陷
package com.test3;/** * @author qingfeng * 功能:继承类 VS 实现接口 :两者之间的关系(实现接口用来弥补Java单继承的缺陷) */public clas ...
- Java开发知识之Java的继承多态跟接口*
Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...
- 为什么java的类是单继承的,接口是多继承的
类 如果一个类继承了两个类,但是这两个类中有相同的方法,那么子类调用方法时,无法确定应该调用哪个父类的方法. [c++是多继承的] 接口 jdk1.7 接口可以多继承,是因为当接口中是抽象方法.不存 ...
- Java程序设计8——抽象类、接口与内部类
1 抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体.但在某些情况下,某个父类并不需要实现,因为它只需要当做一个模板,而具体的实现,可以由 ...
- Java基础(十)接口(interface)
1.接口的概念 在Java中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述. 例如:Array类中的sort方法可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了Compa ...
- java 9+版本中,接口的内容总结
java 9+版本中,接口的内容可以有: 1.成员变量其实是常量,格式: [public] [static] [final] 数据类型 常量名称=数据值: 注意: 常量必须进行赋值,而且一旦赋值不 ...
- Java学习笔记:03面向对象-接口_多态
1.类的概念 一堆具有共同的成员变量(属性)和成员方法(功能)对象的集合 2.接口的概念 接口是功能的集合,就是方法的集合 接口中只能定义方法,不能定义普通的成员变量 而且接口中的成员方法,必须是抽象 ...
- java类为什么是单继承。类的继承,实现接口。
java中提供类与类之间提供单继承. 提供多继承会可能出现错误,如:一个类继承了两个父类,而两个父类里面都有show()方法. class Fulei1{ public void show(){ Sy ...
- 对Java不能多继承,只能单继承,却可以实现多个接口的理解
1.java与C++的不同点在于多继承. Java:不能多继承,只能单继承,但可以实现多个接口 C++:可以实现多继承.例如: class A extends B implements C,D,E { ...
随机推荐
- ACM_Exponentiation
Exponentiation Time Limit: 2000/1000ms (Java/Others) Problem Description: Problems involving the com ...
- 华为 荣耀 等手机解锁BootLoader
下载工具按提示操作即可 链接:https://pan.baidu.com/s/1qZezd1q 密码:8pad 备用链接:https://pan.baidu.com/s/1nwv0heD
- 关于MYSQL 存储过程的文章摘录
1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...
- 配置 Sybase数据源
1.Start-- > All Programs -- > Sybase - -> Connectivity --> click ‘Open Client Directory ...
- openMSP430之openmsp430-loader
openmsp430-loader This simple program allows the user to load the openMSP430 program memory with an ...
- JavaScript图片轮播,举一反三
图片轮播,在一些购物网站上运用的不胜枚举,下面简单介绍一下图片轮播的实现. 如图 <!doctype html> <html lang="en"> < ...
- dubbo之回声测试
回声测试 回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控. 所有服务自动实现 EchoService 接口,只需将任意服务引用强制转型为 EchoSe ...
- 解决Fiddler抓包上不了网的问题:
以前安装Fiddler 没有配置过相关设置,经常出现就是打开fiddler后,浏览器就无法上网了,刚开始觉得可能是因为而公司上网是需要自己的代理的,但fiddler打开后默认127.0.0.1作为IE ...
- [实战经验][SQL Sever 2008 (R)解决方法累积
SQL Sever 2008 (R)的安装图解及配置 http://www.soft6.com/v9/2009/jcsj_1030/115821.html 产品密钥,选择“输入产品密钥”,输入:PTT ...
- Shell 在手分析服务器日志不愁
转自:https://wujunze.com/server_logs_analysis.jsp 自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有骇客 ...