抽象类

Java中接口与抽象类的详解 以及区别

2017-03-04  本文已影响27人  AsgoodAswater

1、抽象类:
如果这个类里面的方法有一个是抽象的,那么这个类必须是抽象的。
抽象类中的方法,子类必须实现。
抽象类中可以有变量,可以有方法体的方法。
2、接口:
接口中方法都默认是public 的,不能有方法体。
接口中的变量都常量,都是public static final 的,必须先赋值。
如果一个类实现了此接口,必须覆盖接口中的所有抽象方法。

一、 抽象类

1、抽象类

包含一个抽象方法的类就是抽象类

2、抽象方法

声明而未被实现的方法,抽象方法必须使用abstract关键词字声明

public abstract class People {  //关键词abstract,声明该类为抽象类
    public int age;
    public void Num() {
    }
    public abstract Name(); //声明该方法为抽象方法
}  

3、抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法

4、抽象类不能被直接实例化,要通过其子类进行实例化

5、只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。

6、子类中的抽象方法不能与父类的抽象方法同名。

7、abstract不能与final并列修饰同一个类。

8、abstract 不能与private、static、final或native并列修饰同一个方法。

二、接口

1、接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法组成

接口中所有方法都是抽象方法;

接口当中所有的方法都是public类型

2、接口的格式

interface interfaceName{
    全局常量
    抽象方法
}

3、接口的实现也必须通过子类,使用关键字implements,而且接口是可以多实现的

class A implements Inter1,Inter2{ //Inter1和Inter2是接口
    ...
}

4、一个类可以同时继承抽象类和接口

class A extends Abs implements Inter1,Inter2{ //Abs是一个抽象类
    ...
}

5、一个接口不能继承抽象类,但可以通过extends关键字继承多个接口,实现接口的多继承

interface Inter implements Inter1,Inter2{ //Inter、Inter1、Inter2都为接口
    ...
}
上一篇下一篇

猜你喜欢

热点阅读