您的位置:首页 > 编程语言 > Java开发

Java学习心得之抽象类和接口

2012-09-12 10:30 330 查看
为了让自己更好的理解,写了如下代码来总结:

1、接口定义,可以看出来接口中可以定义常量,也可以定义方法,但是接口中方法不能有方法体,必须是一个抽象的方法,仅仅是一个方法的声明

/**
* 与InTest 一起测试接口与类
*/
public interface InterTest {
int a=10;
public void sysout();
abstract public void sysin();
String sysout1();
}


2、抽象类的定义:在抽象类中,方法可以被abstract修饰也可以不被修饰,但是不是抽象方法必须要有方法体,而且抽象类中也可以有main方法,其中可以看出来main方法也是可以被重载的,只要其中的形参不同

/**
* 与InTest 一起测试抽象类和普通类
*/
public abstract class AbsClass {
public void aa() {
System.out.println("不是抽象方法必须要有方法体");
}
abstract public void a(String str);
public static void main(String[] args){
System.out.println("args[0]是输入的值"+args[0]+"  "+args[1]);
System.out.println("抽象类父类的main方法");
}
public static void main(int a){
System.out.println("a的值是"+a);
}
}


3、类的定义:这个类实现了上边的接口,继承了抽象类。

实现接口:可以看出来必须是重写所有的接口中定义的方法,可以这样来理解,接口中知识约定了一种规范,说明了一种功能,但是这种功能方法具体怎样来做,还是交给实现接口的类来做,这样也增加了程序的灵活性,同时也有了一定的约束

继承类:在继承的类中,父类中的方法可以不比全部重写,但是抽象方法必须重写,同时也可以在子类中实现父类的main方法。

public class InTest extends AbsClass implements InterTest{
/**
* 接口的方法必须被重写
*/
public void sysout() {
}
public void sysin() {
}
public String sysout1() {
return null;
}

/**
* 抽象方法必须被重写
*/
public void a(String a) {
}

/**
*也可以重载父类的方法,不管是不是抽象的
*/
public void a(){};
public static void main(String args[]){
System.out.println("子类的main方法");
String a[]={"ab","bb"};        //定义字符串数组
AbsClass.main(a);            //实现了抽象类的main方法
AbsClass.main(4);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: