抽象类
1、定义:不包含足够信息来呈现特定对象的类必须不实例化并被继承
2、abstract关键词: abstract class定义抽象类,普通类的其他功能如变量、方法等仍然存在;
公共类人员{
字符串名称; 公共字符串获取名称() {returnname;
}publicvoidsetname(stringname ) {this.name=name;
}公共void sayhi () ) {
system.out.println('hi );
}public abstract voidsayHello (;
}
3、继承抽象类:一个类只能继承一个抽象类,可以实现多个接口
4、抽象方法:抽象类中的一种特殊方法,也用abstract关键字声明,只包含方法名,没有方法体()
通过sayHello方法(,抽象方法没有具体实现的是继承的子类)、非抽象类)实现
a .如果某个类包含抽象方法,则该类必须是抽象类;
b、子类必须重写父类的抽象方法,或者将自身声明为抽象类,最终非抽象子类必须实现抽象方法
接口
1、定义:抽象方法集合用interface关键字声明,不能实例化,可以实现(用implements关键字实现接口);
publicinterfaceperson { public void say hello (; //用隐式抽象方法,不需要写abstract关键字
} publicclassstudentimplementsperson {
@Overridepublic voidsayHello () )。
{
system.out.println (student say hello ); //实现接口上的方法
}
}
2、特性
a、接口中的方法是隐式抽象方法(public abstract );
b、接口中的变量被隐式指定为公共静态文件变量;
c、接口中的方法不能在接口中实现,只能在实现接口的类中实现;
d、接口允许多继承,extends关键字只使用一次,然后继承接口;
publicinterfaceperson { public void say hello (; //用隐式抽象方法,不需要写abstract关键字
} publicinterfacechildren { public void sayhi (; //用隐式抽象方法,不需要写abstract关键字
} publicinterfacestudentextendschildren,Person Person {//类的多项继承是不合法的,但接口允许多项继承
}
抽象类和接口的区别
1、抽象类的方法可以有方法主体,没有接口
2、抽象类的成员变量可以有多种类型,在界面中只能是公共静态文件类型
3、抽象类可以包含静态代码块和静态方法,没有接口;
4、一个类只能继承一个抽象类,但一个类可以实现多个接口