1.多态指的一个对象在不同情况下的多种形态。好处:可以优化代码,提高代码的扩展性;坏处:不能
调用子类对象的特有的方法
2.指的是由子类对象赋值给父类对象(默认的向上转型)和由父类对象强转转为子类对象(向下转型)
3.如果 子类重写了父类的方法,那么在父类的方法中,不用给方法体,那定义的这个父类就是抽象类。
特点:
* 1. 定义的类必须加abstract ,如:abstract class
* 2. 抽象类不一定有抽象方法
* 3. 有抽象方法的类,一定是抽象类
* 4. 抽象类可以定义普通方法
* 5. 抽象类里面定义成员变量
* 6. 抽象类里面可以定义构造方法
* 7. 抽象类如果有定义抽象方法必须都有一个子类
4.抽象类中的属性与一般类中无差别,普通方法也与普通类中无差别,但是如果是定义的抽象方法,则只能用public
或者protected修饰,不能用private
5.接口就是统一的对特定行为的规范(约束),
特点:
* 1. 接口中的方法,必须被子类实现
* 2. 接口(“特殊”的抽象类)不能实例化(不能创建对象)
* 3. 接口通过子类对象的创建,去实例化
* 4. 如果子类实现接口了,那么该子类要么实现接口的所有方法
要么该子类也是一个接口,就不需要重写父接口的方法
6.在接口中定义:常量,抽象方法(jdk8以下版本的要求)
jdk8,jdk9以上版本:在接口里面可以定义静态方法,定义默认方法,私有方法。
7. 定义的代码不同
抽象类:什么都可以定义,(定义抽象方法,可以写,也可以不写)
接口:目前只能定义常量和抽象方法。
* 继承和实现的特点不同
子类继承抽象类,只能继承一个抽象类(单继承)
子类实现接口,一个子类可以实现多个接口(多实现)
* 接口的修饰和抽象类的修饰不同
public interface 接口的名称{--}
public abstract class 抽象类的名称{}
* 接口和抽象类的子类实现方式不同
子类 implements 接口名称1,接口名称2{---}
子类 extends 抽象类{---}
* 作用不同(设计模式的不同)
接口:对子类特定的行为(方法)进行约束
抽象类:对子类具有共同的属性和行为进行抽取
* 接口和抽象类里面方法的区别
接口里面都是抽象方法
抽象类里面可以有抽象方法,也可以没有,也可以有其它方法
* 接口和抽象类里面修饰符的区别
接口里面的常量和抽象方法必须被public修饰
抽象类里面的抽象方法必须被public修饰,其它无要求
8.都好重要啊,给我听蒙了都
|