对Java单继承的弥补——接口

接口主要用来实现多重继承,它是常量和方法的集合,这些方法只有声明没有实现,即接口本身是抽象的,系统默认用abstract修饰。

1.接口的定义:

1 public interface A{
2     int A=1;//默认为public static final常量
3     void displayA();//默认为public abstract抽象方法
4 }

2.接口可以实现多重继承:

 1 interface A{
 2     int A=1;
 3     void displayA();
 4 }
 5 interface B{
 6     int B=2;
 7     void displayB();
 8 }
 9 interface C extends A,B{
10     int C=3;
11     void displayC();
12 }
13 class ABC implements C
14 {
15     public void displayA()
16     {
17         System.out.println(A);
18     }
19     public void displayB()
20     {
21         System.out.println(B);
22     }
23     public void displayC()
24     {
25         System.out.println(C);
26     }
27 }
28 public class T04
29 {
30     public static void main(String[] args)
31     {
32         ABC a = new ABC();
33         ABC b = new ABC();
34         ABC c = new ABC();
35         a.displayA();
36         b.displayB();
37         c.displayC();
38     }
39 }

上面的例子中,接口C多继承了接口A和B,类ABC通过实现接口C,同时实现了接口A和B 中的方法,这就是多继承的一种体现。

3.接口和抽象类的区别:

接口中只有抽象方法,没有普通方法;接口无构造方法。

接口不能被继承,只能被实现。

上述:public class ABC implements C{}就是类实现接口的方法。

4.接口中定义的常量可以直接用类名访问。

System.out.println(ABC.A);

5.GUI程序事件处理——接口使用一例。

 1 import java.awt.FlowLayout;
 2 import java.awt.event.*;
 3 import javax.swing.*;
 4
 5 public class EventDemo extends JFrame implements ActionListener
 6 {
 7     JButton button1 = new JButton("登录");
 8     JButton button2 = new JButton("取消");
 9     JTextField jtf = new JTextField(20);
10     public EventDemo()
11     {
12         add(jtf);
13         add(button1);
14         add(button2);
15         button1.addActionListener(this);//为按钮注册事件监听器
16         button2.addActionListener(this);
17         setSize(600,350);
18         setVisible(true);
19         setLayout(new FlowLayout());
20         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
21     }
22     public void actionPerformed(ActionEvent e)//实现接口中的抽象方法
23     {
24         if((JButton)e.getSource()==button1)
25             jtf.setText("***");
26         else
27             jtf.setText("&&&");
28     }
29     public static void main(String[] args)
30     {
31        EventDemo frame = new EventDemo();
32     }
33 }
时间: 2024-10-25 12:02:52

对Java单继承的弥补——接口的相关文章

java通过继承来扩展接口

接口主要是为了向上转型,从而使基类(接口方法)更具灵活性!不想废话,看例子: /** * */ package interfaces; interface Monster{ void menace(); } interface DangerousMonster extends Monster{ void destory(); } interface Lethal{ void kill(); } class DragonZilla implements DangerousMonster{ publ

java中单继承,多接口的实现及一些注意事项

java中一个类的直接父类只能有一个,但可以实现多个接口. 1 package javaKeyTechnology; 2 /** 3 * java中单继承,多接口. 4 * 一个类的直接父类只能有一个,但可以同时实现多个接口. 5 */ 6 class Fath{ 7 int age; 8 Fath(int age){ 9 this.age = age; 10 System.out.println("I am Father"); 11 } 12 } 13 14 interface Li

Java笔记(09):面向对象--接口

1.接口的成员特点: 1 /* 2 接口的特点: 3 A:接口用关键字interface表示 4 interface 接口名 {} 5 B:类实现接口用implements表示 6 class 类名 implements 接口名 {} 7 C:接口不能实例化 8 那么,接口如何实例化呢? 9 按照多态的方式来实例化. 10 D:接口的子类 11 a:可以是抽象类.但是意义不大. 12 b:可以是具体类.要重写接口中的所有抽象方法.(推荐方案) 13 14 由此可见: 15 A:具体类多态(几乎没

java类为什么是单继承。类的继承,实现接口。

java中提供类与类之间提供单继承. 提供多继承会可能出现错误,如:一个类继承了两个父类,而两个父类里面都有show()方法. class Fulei1{ public void show(){ System.out.println("父类1"); } } class Fulei2{ public void show(){ System.out.println("父类2"); } } class Zilei extends fulei1,fulei2{ public

Java中类继承、接口实现的一些细节(长期更新)

前言 在Java中,子类继承父类,类实现接口是属于常识性的内容了,作为一个Java 程序员应该也比较熟悉.不过子类继承父类,类实现接口中还是有一些小细节值得注意一下,本文就从个人工作.学习中入手,总结一些细节性的内容,以更进一步 地掌握继承.实现的关系.现在只是写一些目前碰到的内容,以后只要想到了.碰到了任何继承.实现相关问题,都会保持更新此文. 接口A有void C()方法,接口B有int C()方法,则无法同时实现这两个接口 Java为了弥补类单继承的不足,引入了类多实现接口的机制,不过多实

对比单继承与多继承的优势,以及Java解决方案

对比单继承与多继承的优势,以及Java解决方案 继承是一种面向对象的基本特征之一,但在具体语言的语法设计中有两种方式:多继承和单继承. 所谓多继承是指一个子类可以拥有多个父类:单继承则是一个子类只拥有一个父类. 多继承的优点在于由于可以同时具备多个父类的特征,可以让子类拥有更高的丰富度:而缺点是类的继承结构会变得复杂,而且可能会出现菱形继承的风险: 单继承的优点在于类层次结构的清晰,设计上更容易把握:缺点实在丰富度要求较高和较复杂的情况下,单继承从设计结构上没办法满足. Java只是在设计语法时

关于Java中继承和接口的理解

关于Java中继承和接口的理解 Java语言中,为了实现代码重用,设计了继承这一机制,但是,其设计成单继承,这样设计是有原因的,如下图: Figure1:deadly diamond of death 此图问题称为菱形问题(diamond problem),就是说,当A的子类B和C同时实现了A中的方法,则同时继承了B和C的子类D在调用该方法时会出现混乱,无法得知该调用哪一个方法. 既然不能实现多继承,我们就会考虑把很多方法就写在父类里,或者继承抽象类,实现其方法,但是,这样会导致一个问题,比如说

黑马程序员--java基础------继承,抽象,接口

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------  继承 一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单独的这个类称为父类或者超类. 这样类与类之间就存在了继承的关系.子类可以直接访问父类中的非私有的属性和行为.在代码中通过extends关键字表示继承关系.例: class

Java基础---继承、抽象、接口

一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单独的这个类称为父类或者超类.例如:猫和豹子都是猫科动物,那么就可以说描述猫这个对象创建的类,是子类:而描述猫科动物这个对象创建的类,就是父类. 这样类与类之间就存在了继承的关系.子类可以直接访问父类中的非私有的属性和行为.在代码中通过extends关键字表示继承关系.例: class Sonexte