抽象类
一.理解抽象类
思维:假如我想定义一个Shape(图形类)类,我在这个类中写了一个draw()方法,但是这个方法是不能用来描述图形形状的(不能有方法体),因为我只要对他进行了准确描述,那他的形状就定死了。
所以,如果我们想要定义一个形状如:三角形——》写一个三角形类,三角形也是图形的一种是吧,所以我们就可以继承Shape类,并一定要重写父类中的方法(如果你不重写的话不就相当与白继承了一个类吗?父类的方法中什么也没写呀),通过重写父类方法获得一个你心目中的“三角形”。这个Shape类就是抽象类,他的使用方法也是如此。
二.抽象类的语法
在Java中,一个类如果被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法,该方法不能有方法体,是必须要被子类重写的,否则会报错;
三.抽象类的特性
1. 抽象类不能直接实例化对象

2. 抽象方法不能是 private 的
3. 抽象方法不能被final和static修饰,因为抽象方法要被子类重写
4. 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则子类也是抽象类,必须要使用 abstract 修饰
4.1如:
4.2若Main类也使用abstract修饰,那么后面有类继承了Main类的话要么还是使用abstract修饰,要么就重写Abstract和Mian这两个类的抽象方法,依次类推...
5.
5.总结:抽象类的作用
接口
接口可以理解为是比抽象类更抽象的东西。
一.接口的概念
接口的例子在生活中到处都是:如笔记本上的USB口,电源插座等。、
二.语法规则
1.1接口特性
1.接口中定义的成员变量是默认被public static final 修饰的,所以我们为了保持整洁可以不写public static final。
2.接口中的方法被默认修饰为public abstract,因此可以省略不写。
3.如果接口中的方法被default修饰,那么可以有具体的代码实现。
4.如果接口中的方法被static修饰,那么它也可以有具体的实现。
3.接口中除被default和static修饰方法外都要被重写(除非子类被abstract修饰)否则就报错。
2.1.1继承接口
1.子类使用“implements”关键字继承接口。如:例一
2.我们知道子类只能继承一个父类,但是一个子类却可以继承多个接口。如:例一
3.接口和接口之间可以使用“extends”拓展。如:例二
例一:
例二:
三.实战接口