抽象类
抽象类abstract关键字声明
抽象方法abstracet关键字声明
类只能继承一个类,但可以实现(implements)多个接口
抽象类不能创建实例
代码如下
package abstractandinterface;
/*
* abstract 抽象类可以实现一部分
*
*
*/
public abstract class Animals {//这是一个抽象类
public String name;
public int age;
public Animals()
{
name="animals";
age=10;
}
public Animals(String name,int age)
{
this.name=name;
this.age=age;
}
public abstract void run();//声明一个抽象方法
}
当子类继承了抽象类后,必须实现所有的抽象方法,否则子类依旧是抽象类。
接口
接口时一种特殊的类,编译后依旧是.java文件
接口可以继承多个接口,没有继承的接口会叠加下来
类实现接口,就必须实现所有未实现的方法
代码如下
package abstractandinterface;
/*
* interface里的默认都是public,且全部方法不实现
*
*
*/
public interface Action {//这是一个接口
public void eat();
public void move();
}
子类继承抽象类与实现接口的代码
package abstractandinterface;
/*
* 这是一个继承和实现接口的类
*
*
*/
public class Cat extends Animals implements Action{
public void eat()
{
}
public void move()
{
}
public void run()
{
}
}
总结
1.抽象类abstract,接口interface
2.抽象类可以有部分方法实现,接口所有方法不实现
3.一个类只能继承一个类,但是可以实现多个接口
4.接口可以继承多个接口
5.抽象类有构造器,接口没有
6.抽象类可以有main函数,接口不行
7.抽象类可以有private/protect,但是接口都是public的