接口可以被实例化吗?
接口可以继承接口吗?
接口可以实现多个接口吗?
抽象类和接口有什么区别?代码一
abstract class Name{
private String name;
public abstract boolean isStupidName(String name){}
}
//是不是把boolean改成void就可以了??
代码二
public class Something{
void doSomething(){
private String s="";
int l=s.length();
}
}
//private 报错,为什么不能被修饰?
接口可以继承接口吗?
接口可以实现多个接口吗?
抽象类和接口有什么区别?代码一
abstract class Name{
private String name;
public abstract boolean isStupidName(String name){}
}
//是不是把boolean改成void就可以了??
代码二
public class Something{
void doSomething(){
private String s="";
int l=s.length();
}
}
//private 报错,为什么不能被修饰?
解决方案 »
- 跪求交如何把数据库的数据写入table
- ttf 字体解析类库,谁有?解析完后要显示出来,
- 如何运行java
- 请问,有没有中文版的将jar文件制作成exe文件的软件呢?
- 新手问java一般做好的程序怎么拿到别人机器上运行?我看了好多都没明白怎么回事,谁再给我讲讲
- private 属性到底能不能被子类继承?
- 为什么无法使用scrollable resultset? 高分请教!!
- 请问JDK1.4.1中有无org.jdom这个包?
- VC和Java,到底是谁编出的程序运行速度快!!!
- 一个简单的问题~
- 使用axis调用webservice,String[]参数怎么传
- eclipse调试 true typeFont.open()行:不可用
可以
可以
山寨定义:当一个接口中有一部分方法由自己实现了,就不能叫接口,叫抽象类.abstract class Name{
private String name;
public abstract boolean isStupidName(String name);
} public/private/protected只能用于修饰类级属性,不能用于方法内本地属性
public class Something {
void doSomething() {
String s = " ";
int l = s.length();
}
}
接口中所有成员皆为public,所有属性都是静态的,所有成员属性皆为常量,不能被实例化,没有构造,主要解决java中没有多继承,只能接口继承接口。
当一个类中有抽象方法,该类必须为抽象类,抽象类不能被实例化,抽象类中的抽象方法必须由子类实现,如果子类不实现,有可能编译出错,除非子类也是抽象类。其余参考一楼。
class A
{
public int getMaxA(int a,int b);
}
每个类有一个函数表 也就是函数地址的数组....如果编入了一个模块那么函数的地址就是固定的.
如果这个模块发生了改变,函数的地址就会改变 那么使用这个模块的工程都需要重新编译.
class B extends A
{
public int getMaxB(int a,int b);
}
这2个类的函数表看起来如下
A B
[getMaxA] [getMaxA]
[getMaxB]
如果将getMaxA 声明为纯虚函数,则不能构建A的实例.而且B必须实现getMaxA 否则也不能构建实例.
此时函数表如下
A B
[NULL](空地址) [getMaxA]
[getMaxB]
我们只需要将 A类供给别人使用就行了.他无法知道getMaxA如何实现的.
我们可能会提供这么一个函数
A GetA()
{
A tempA = new B()
return A;
}那么调用A.getMaxA 时 实际调用的是B.getMaxA. 这就是所谓的接口.一个重要的地方是
以后即使你改变了B类,那么只重新编译B类所在模块即可,其他模块无需重新编译.
简单的说这就是动态绑定函数地址,而不是在编译时就把函数地址写时.
程序始终只调用ActionListener.actionPerformed 去执行事件
ActionListener.actionPerformed 因为是个纯虚函数 所以会去执行派生的MyActionListener.actionPerformed函数.不过做java 没必要弄得这么详细了button.addActionListener(new ActionListener() //这里等同于创建了1个匿名派生类
{
public void actionPerformed(ActionEvent event)
{
demoPanel.setBorder(b);
}
});