嘛是抽象类?
被abstract关键字修饰的方法只有声明,没有方法体,这玩意儿叫抽象方法
被abstract关键字修饰的类就是抽象类
1.如果一个类含有抽象方法,那么它一定是抽象类
2.抽象类中的方法实现交给子类来完成
抽象类的格式
权限修饰符 abstract 返回值类型 方法名(参数列表);
抽象类的特点
有点长你忍一下
1.可以修饰方法或者类
2.被修饰的类叫抽象类,被修饰的方法叫抽象方法
3.抽象类中可以没有抽象方法
4.如果类中有抽象方法,那么该类必须定义为一个抽象类
5.子类要是继承了抽象类,要么还是一个抽象类,要么就把所有父类抽象方法重写
6.多用于多态中
7.抽象类不可以被实例化
入门代码。。。有空写
抽象类的注意事项
1.抽象方法要求子类继承后必须重写
2.private:被私有化后,子类无法重写,与abstract相违背
3.static:静态优先于对象存在,存在加载顺序问题
4.final:被final修饰后,无法重写,与abstract相违背
嘛是接口?
接口在java中是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准
接口的格式
interface 接口名{代码...}
接口的特点
1.通过interface关键字来定义接口
2.通过implements让子类来实现接口
3.接口中的方法全部都是抽象方法(JAVA8)
4.可以把接口理解成一个特殊的抽象类(但接口不是类!!!)
5.类描述的是一类事物的属性和方法,接口则是包含实现类要实现的方法
6.接口突破了java单继承的局限性
7.接口和类之间可以多实现,接口与接口之间可以多继承
8.接口是对外暴露的规则,是一套开发规范
9.接口提高了程序的功能拓展,降低了耦合性
10.接口里是没有构造方法的,如果一个类没有明确指定它的父类,那么它默认继承*父类Object,调用的super()是Object的无参构造
11.接口里没有成员变量,都是常量。所以,你定义一个变量没有写修饰符时,默认会加上:public static final
12.接口里的方法,默认都是抽象的,方法上会默认拼接public abstract。例如:public abstract void save();
代码暂略。。。
抽象类与接口的区别
1.抽象类是一个特殊的类,抽象类中可以包含没有方法体的方法(抽象方法)
2.接口可以理解成一个特殊的抽象类,接口里的都是抽象方法,没有普通方法
3.接口会为方法自动拼接public abstract,还会为变量自动拼接public final static
4.抽象类可以有成员变量成员常量 接口只能有静态常量
5.抽象类可以有构造方法–用来给子类创建对象,接口中没有构造方法
6.抽象类和接口都不能实例化(创建对象)
7.接口可继承接口,并可多继承接口,但类只能单继承
8.抽象方法只能声明,不能实现,接口是设计的结果 ,抽象类是重构的结果