Java抽象类与接口
来源:互联网 发布:百度指数数据来源 编辑:程序博客网 时间:2024/05/16 17:15
抽象类
public abstract class classname{
protected classname(){
}
}
抽象方法
public abstract returntype method(...){
}
抽象类的构造方法为protected,因为只能被子类使用,抽象类不可以派生出对象
抽象方法不能包含在非抽象类中。如果抽象子类不能实现抽象父类的所有抽象方法,那么子类也必须定义为抽象的。在抽象类的扩展类中,必须实现所有抽象的方法。
即使父类是具体的,子类也可以是抽象的
接口:
接口是一种和类相似的结构,只包含常量和抽象方法。目的是指明多个对象的共同行为
修饰符 interface 接口名{
//常量声明
//方法签名
}
例如:
public interface Edible{
public abstract String howToEat();
}
java中,接口被看作一种特殊的类,像常规类一样被编译。和抽象类相似,不能使用new操作符创建实例。
需要使用implements来实现接口。类和接口之间的关系称为接口继承。
public class test{
public static void main(String[] args)
{
Object[] object = { new Tiger(),new Chicken(),new Apple()};
for(int i = 0; i < object.length; i++)
{
if(object[i] instanceof Edible)
{
System. out.println(((Edible)object[i]).howToEat());
}
}
}
}
class Animal{
}
interface Edible{
public abstract String howToEat();
}
class Chicken extends Animal implements Edible{
public String howToEat(){
return "Chicken: fry it" ;
}
}
class Tiger extends Animal{
}
abstract class Fruit implements Edible{
}
class Apple extends Fruit{
public String howToEat(){
return "Apple: Make apple cider" ;
}
}
class Orange extends Fruit{
public String howToEat(){
return "Orange: Make orange juice" ;
}
}
//answer:
Chicken: fry it
Apple: Make apple cider
ActionListener接口:
监听器
不是所有对象都能成为动作事件的监听器:
1。这个对象必须是ActionListener接口的一个实例,这个接口定义了所有动作监听器的共有动作
2。ActionListener对象listener必须使用方法source.addActionListener(listener)注册给原对象。
import javax.swing.*;
import java.awt.event.*;
public class HandleEvent extends JFrame {
public HandleEvent(){
JButton jbtOK = new JButton("OK" );
JButton jbtCancel = new JButton("Cancel" );
JPanel panel = new JPanel();
panel.add(jbtOK);
panel.add(jbtCancel);
add(panel);
OKListenerClass listener1 = new OKListenerClass();
CancelListenerClass listener2 = new CancelListenerClass();
jbtOK.addActionListener(listener1);
jbtCancel.addActionListener(listener2);
}
public static void main(String[] args)
{
JFrame frame = new HandleEvent();
frame.setTitle( "Handle Event");
frame.setSize(200,150);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
frame.setVisible( true);
}
}
class OKListenerClass implements ActionListener{
public void actionPerformed(ActionEvent e){
System. out.println("OK button clicked" );
}
}
class CancelListenerClass implements ActionListener{
public void actionPerformed(ActionEvent e){
System. out.println("Cancel button clicked" );
}
}
接口可以继承其他接口,这样的接口称为子接口。接口只可以扩展接口,而类可以扩展类和接口。
- Java:接口与抽象类
- JAVA 抽象类与接口
- Java抽象类与接口
- java 抽象类与接口
- JAVA接口与抽象类
- JAVA 接口与抽象类
- java抽象类与接口
- Java接口与抽象类
- Java抽象类与接口
- java抽象类与接口
- java抽象类与接口
- java:抽象类与接口
- java 抽象类 与 接口
- Java抽象类与接口
- java 接口与抽象类
- Java抽象类与接口
- 【JAVA】接口与抽象类
- Java 抽象类与接口
- Secret of the JavaScript Ninja 学习笔记 - 5
- get table info by column name
- Java GUI API
- Java子类的构造方法与多态
- Java异常处理
- Java抽象类与接口
- Atomic Commit In SQLite
- DLL文件脱壳(重定位表修复部分)
- 55个常用的JavaScript网页脚本
- 着色器中语义的理解
- Redis persistence demystified
- Daniel Jebaraj谈Orubase
- Android SAX解析xml文件
- fedora源重复