今日整理:
1.什么是多态?多态的好处和坏处分别是什么?
多态是指一个对象在不同情况下的多种形态;
好处:简化代码,提高代码的扩展性;
缺点:不能调用子类对象特有的方法。
2.多态的转型指的是什么?
向上转型:子类对象赋值给傅雷对象(多态默认的);
向下转型:将多态的对象通过强转,转成子类对象;
3.什么是抽象类?它的特点是什么?
如果子类重写了父类的方法,那么在父类的方法中,不用给方法体;这个定义的父类就是抽象类;定义的没有方法体的方法就是抽象方法。
特点:
①.abstract class;
②.抽象类不一定有抽象方法
③.有抽象方法的类,一定是抽象类
④.抽象类可以定义普通方法
⑤.抽象类里面定义成员变量
⑥.抽象类里面定义构造方法
⑦.抽象类必须都有一个子类;
4.抽象类中的成员(属性,方法)有什么特点?
方法不能被private修饰,否则不能被子类重写;
成员变量:既可以是变量、也可以是常量
构造方法:有构造方法,目的是给父类中成员初始化
成员方法:既可以是抽象方法、也可以是普通方法
5.接口是什么?它有什么特点?
接口就是统一的规范(准则),只要符合这个规范,那么都可以使用这个接口。
特点:
①.接口中的方法,必须被子类实现
②.接口(“特殊”的抽象类)不能实例化(不能创建对象)
③.接口通过子类对象的创建,去实例化
④.如果子类实现接口了,那么该子类要么实现接口的所有方法,要么该子类也是一个接口,就不需要重写父接口的方法
6.接口中的成员(属性,方法)有什么特点?
接口里面定义5部分:
jdk8之前:只能定义常量值,抽象方法
jdk8以后:静态方法,默认方法,私有方法(后面在讲解新特性)
成员常量的特点:
常量默认被 public static final修饰,在书写常量可写可不写。
抽象方法特点:
方法名称默认表public abstract修饰,在书写方法可写可不写。
7.抽象类和接口有什么区别?类和接口有什么关系?
相同点:
①.接口和抽象类:里面都有抽象方法
②.它们两个都是抽象类(接口:接口中有抽象方法,所以把接口称之为抽象类)
③.它们两个都不能被创建对象
不同点:
①.定义的代码不同
抽象类:什么都可以定义,(定义抽象方法,可以写,也可以不写)
接口:目前只能定义常量和抽象方法。
②.继承和实现的特点不同
子类继承抽象类,只能继承一个抽象类(单继承)
子类实现接口,一个子类可以实现多个接口(多实现)
③.接口的修饰和抽象类的修饰不同
public interface 接口的名称{--}
public abstract class 抽象类的名称{}
④.接口和抽象类的子类实现方式不同
子类 implements 接口名称1,接口名称2{---}
子类 extends 抽象类{---}
⑤.作用不同(设计模式的不同)
接口:对子类特定的行为(方法)进行约束
抽象类:对子类具有共同的属性和行为进行抽取
⑥.接口和抽象类里面方法的区别
接口里面都是抽象方法
抽象类里面可以有抽象方法,也可以没有,也可以有其它方法
⑦.接口和抽象类里面修饰符的区别
接口里面的常量和抽象方法必须被public修饰
抽象类里面的抽象方法必须被public修饰,其它无要求
8.总结今天自己认为重要的点.
①.抽象类和接口的区别,类和接口的联系
②.接口的特点
③.多态的转型
④.抽象类的特点
⑤.接口的语法格式
最重要的是要清楚明白抽象类,接口,继承,多态的概念,以及每一个的使用方法和应该注意的事项。比如抽象类里面可以有普通方法也可以有抽象方法,
但在普通类里面不能有抽象方法。 |