赞
踩
什么是抽象类
当定义类的时候,我们通常要定义一些方法来描述该类的行为特征,但是有些方法的实现方式是无法实现是无法确定的,就比如说我们定义一个Animal类时,shout()方法用于表示动物的一些行为,但是不同的动物行为不同,所以我们shout()方法无法准确的去调用该动物的行为。
所以我们就需要用abstract关键字来修饰去定义一个抽象的方法,并且在定义方法时不需要实现方法体。需要注意的是抽象类不可以被实列化,抽象方法是没有方法体的不可以直接调用,如果想要调用抽象类中的抽象方法就需要创建一个子类,在子类中实现抽象类中的抽象方法。
代码实现
- //定义抽象类Animal
- abstract class Animal {
- public abstract void shout();
- }
- class Dog extends Animal{
- public void shout(){
- System.out.println("狗叫");
- }
- }
接口
假如抽象类中的所有方法都是抽象的,那么我们就可与将这个类定义为Java中的另一种形式-接口,接口简单的说就是特殊的抽象类,并且定义接口时不能用class来定义 需要用关键字interface来声明,当然接口中不止含有抽象方法它还包含用default关键字修饰的默认方法,static关键字修饰的静态方法这两种方法是允许有方法体的。但是接口不能包含普通方法。
接口的几个特点
当一个类要实现接口时,假如这个类时抽象类只需要实现接口中的部分抽象方法反之就要实现所有抽象方法。
我们可以通过implements关键字同时实现多个接口,被实现的多个接口之间要用英文逗号(,)隔开
接口也可以通过extends关键字来实现继承,并且一个接口可以同时实现继承多个接口,接口之间也需要用逗号隔开。
一个类在继承一个的同时我们还可以实现接口。extends关键字必须位于implements关键字之前。
代码实现
-
- interface Animal2{
- int a=1;
- void breathe();
- default void getBy(String By){
-
- }
- static int getA(){
- return Animal2.a;
- }
- //定义了一个新接口继承了Animal2
- interface Animal3 extends Animal2{
- void run();
- }
- //接口的是实现
- class Horse implements Animal3{
- public void breathe(){
- System.out.println("在呼吸");
- }
-
- @Override
- public void run() {
- System.out.println("跑起来");
- }
- }
- }
- 测试类
- public class Ab {
- public static void main(String[]args){
- Dog dog=new Dog();
- dog.shout();
- System.out.println(Animal2.a);
- Animal2.Horse horse=new Animal2.Horse();
- System.out.println(horse.a);
- horse.getBy("马");
- horse.run();
- horse.breathe();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。