抽象类:
定义:
由修饰符abstract修饰的类被称为抽象类.
特点:
- 抽象类的存在的意义是为了被继承
- 抽象类中可以有被abstract修饰的抽象方法,也可以存在普通方法
- 抽象方法没有方法体,即方法名称小括号后接分号";",不能接"{}"
- 当一个类继承抽象方法时,这个类就必须实现抽象类中所有的抽象方法,而普通方法可以不被继承
- 抽象类存在构造器
- 同一个类只能继承一个抽象类
public abstract class Abstract
{
public Abstract()
{
System.out.println("抽象类的构造器");
}
public abstract void something() ;
public abstract void some();
public void sth()
{
System.out.print("");
}
}
public class AbstractDemo extends Abstract implements Interface
{
public void something()
{
System.out.println("抽象类方法实现");
}
@Override
public void some() {
// TODO Auto-generated method stub
};
public static void main(String[] args)
{
AbstractDemo abd = new AbstractDemo();
abd.something();
}
}
意义:
抽象类的意义在于提供一个模板给被继承的类,制订一个规则,一个标准,哪些东西必须要执行,但是如何执行(方法重写)是由被继承的类决定的.
接口:
定义:
接口是抽象方法的集合,以interface来声明.
特点:
- 一个类可以继承多个接口
- 继承接口的类必须重写、实现被继承接口中所有的抽象方法
- 接口没有构造函数
- 比起继承接口,更准确的定义是实现接口
- 接口不能实例化对象
- 接口中方法默认修饰符是public abstract,自己在接口中写方法的时候也可以直接写void test();系统默认会在方法前加上修饰符,不会报错
- 接口之间也能继承,采用默认修饰符extends
public interface Interface { public abstract void test(); void test1(); }