在类中含有abstract的方法,则该类就是抽象类。你不能new一个抽象类,即不能实例化一个抽象类。
一般来说建议能把抽象类中的非abstract方法排除掉,把它变为接口
书上如是说,呵呵。。
一般来说建议能把抽象类中的非abstract方法排除掉,把它变为接口
书上如是说,呵呵。。
解决方案 »
- Applet 与Thread的有什么关系
- java swing 实现上下滚动文字
- 学习交流,免费提供著名培训机构视频培训录像(JAVA、Oracle、Linux/Unix等等)
- 能不能同时使用版本为1.4.2和1.5两个jdk?
- 怎么样在java中获取某个jsp或者servlet对应的当前线程个数?
- 在java 中怎么调用数据库,当前急待想知道调用sql server的数据库?
- 500分求thinking in java(简体中文第二版)
- Java 数据库解决方案汇总。No ODBC 欢迎参与!!!进者有分
- 100分求一个正则表达式
- JAVA怎么为注解添加Class属性?
- 我的小例子为什么连不上数据库?
- 谁知道从那可以下载到Java的JDK?
普通类B,C。都是从A继承出来的。
A中有abstract方法f1,f2,f3....,这些方法在B,C中才实现。
这样,对于任何一个B,C的实例,我们都可以把他当作A来使用。
而且可以访问这些在B,C中实现的方法。
to : learner
用抽象的方法可是简化编程的工作量
比如:abstract class aclass {
...
abstract void m1() {};
...
};
class aex1 extends aclass {
...
void m1() {System.out.println("aex1")};
...
};class aex2 extends aclass {
...
void m1() {System.out.println("aex2")};
...
};public class atest {
void test(aclass a) {
a.m1();
};
public static void main(String[] args) {
...
aclass a1 = new aex1();
aclass a2 = new aex2();
a1.test();
a2.test();
...
};
}
试想一下:如果没有抽象类,atest的test方法是不是要写一部分代码,如果是多个衍生类的话,那多出的代码量可就。呵呵
atest中的main部分应该这样的 public static void main(String[] args) {
...
aclass a1 = new aex1();
aclass a2 = new aex2();
test(a1);
test(a2);
...
};