Java中抽象类(abstract)与接口(interface)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java中抽象类(abstract)与接口(interface)

Java中抽象类(abstract)与接口(interface)

 2018/9/13 16:02:50  andrew7676  程序员俱乐部  我要评论(0)
  • 摘要:1.Java中抽象类abstract抽象类不能实例化(不能用抽象类创建对象)。抽象方法就是被abstract修饰的方法,有声明无实现。抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。如果一个类包含了抽象方法,那么这个类一定是抽象类。如果一个类是抽象类,它可以包含具体的方法,可以包含抽象方法。如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法
  • 标签:Java 接口 抽象
1. Java中抽象类abstract

class="java" name="code">
抽象类不能实例化(不能用抽象类创建对象)。
抽象方法就是被abstract修饰的方法,有声明无实现。抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

如果一个类包含了抽象方法,那么这个类一定是抽象类。
如果一个类是抽象类,它可以包含具体的方法,可以包含抽象方法。
如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

public class Test {
    public static void main(String[] args){
        R r = new R();
    }
}
abstract class T {
    public abstract void method();
    public void test(){
        System.out.println("test");
    }
}
class R extends T {
    public void method(){
        System.out.println("method");
    }	
}


2. Java中接口interface

接口,英文称作interface,接口泛指供别人调用的方法或者函数。

接口中的变量会被隐式地指定为public static final变量。
接口中的所有方法都是抽象方法(无实现,abstract可以省略)。

类实现了接口(类不是抽象类),必须实现接口中所有的方法。
一个类可以实现多个接口,接口之间用“,”分割即可。
接口类型也可以使用多态。

public class Test{
    public static void main(String[] args){
        MyClass myClass = new MyClass();
        myClass.output();
        myClass.output2();
        myClass.output3();
	}
}
interface MyInterface{
    public void output();
}
interface MyInterface2{
    public void output2();	
}
class MyParent{
    public void output3(){
        System.out.println("output3");
    }
}
class MyClass extends MyParent implements MyInterface, MyInterface2{
    public void output(){
        System.out.println("output");
    }
    public void output2(){
        System.out.println("output2");
    }	
}


3. Java中抽象类abstract与接口interface对比

1) 抽象类中可以有具体方法,也可以有抽象方法;接口中只能有抽象方法,不能有具体方法;
2) 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3) 接口中不能含有静态代码块以及静态方法;而抽象类可以有静态代码块和静态方法;
4) 一个类只能继承一个抽象类;而一个类却可以实现多个接口;

补充:
1) 抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。例如:飞机和鸟是不同类的事物,但是它们都有一个共性,就是都会飞。我们将Airplane,bird定义为抽象类,将fly定义为接口。继承抽象类是一个“是不是”关系,而接口实现则是“有没有”的关系。
2) 抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。
上一篇: Java中封装、继承、多态 下一篇: 没有下一篇了!
发表评论
用户名: 匿名