标签:类型 动物 double 耦合 局限 好的 区别 多个 参数
1、抽象类:
关键字:abstract 修饰的类
特点:具有抽象方法的类,不能够实例化,可以同时有普通方法和抽象方法;
定义:访问修饰符 abstract class 类名{}
抽象方法:访问修饰符 abstract class 方法名();
抽象方法和抽象类不能够用用private修饰,有构造方法,子类如果继承了它需要实现里面的抽象方法(就是方法重写)
public abstract class abstra {
public abstract void play();
}
作用:主要用作父类,在子类众多都需要继承父类中方法的时候,不好在父类定义方法,可以使用abstract修饰类和方法,
一般用于父类,使用起来除了不能够实例化其它都差不多;
2、接口:
关键字:interface
用关键字implements实现接口;
特点:抽象类的升级,接口里面的方法都是抽象方法,由常量和抽象方法组成不能够实例化;
定义:访问修饰符 interface 接口名字{}
抽象方法和接口不能够用用private修饰,无构造方法,子类中如果实现了接口implements需要重写里面的方法;
public interface inter {
public final double PI=3.14;
public abstract void play();//public abstract可以省略
}
应用范围:
a.接口可以继承多个接口;
b.子类可以实现多个接口;
c.子类可以继承一个父类同时实现多个接口;注意一般extends继承的父类在前,implements在后
作用:解耦,降低程序之间的耦合性,减少非他不可的不可替代性,提高程序的扩展性,;解决了类的单一继承性;
个人理解:在应用的过程中,一般来说抽象类可以解决需要接口的问题,但是抽象类一般用作于一个类属性的父类,如果有很多子类需要一个共同的方法,而类型不同呢?
这个时候最好定义一个接口,接口表示一个功能,没有类属性的局限性(比如说动物类定义为抽象类,那么里面的抽象方法一般都为动物的属性方法,具有局限性),只有有这个功能,都可以实现这个接口;
可以和多态一起结合使用,把接口作为返回值类型或者参数更能够体现接口的解耦性,接口能够更好的体现解耦;
3. 抽象类和接口的区别
a、抽象类可以有普通方法和普通属性;
b、抽象类有构造方法;
c、抽象类和接口定义的关键字不同;
d、抽象类只能单继承,接口可以继承多个接口
注意:抽象类不可以继承接口,可以实现接口。
标签:类型 动物 double 耦合 局限 好的 区别 多个 参数
原文地址:https://www.cnblogs.com/sw-123/p/9328092.html