day17

今天和前几天一样复习了一下前面新学的知识(主要包括java中的继承和多态还有接口和抽象类),因为这几天都是一直再往后学没有及时复习刚学的知识,这两天学的时候发现我对前面的知识其实没有很熟悉,所以我今天细致地复习了一下前几天还不是很了解的内容,一些不明白的点也重新回去看了一遍视频。

在继承的子类中super()可以访问父类的构造方法,super.成员方法()访问父类成员方法,super.变量名访问父类中成员变量,子类所有构造方法默认都会访问父类中无参的构造方法

多态 黑马p171
多态的前提
1.有继承或实现关系
2.有方法重写
3.有父(类/接口)引用指向(子/实现)类对象
成员变量:编译看左边,执行看左边;
成员方法:编译看左边(即父类中有没有当前方法),执行看右边(输出子类的数据)
public class Zi extends Fu{}
Fu f = new Zi();//父类的引用指向子类对象(向上转型)
Zi z = (Fu)f;//(向下转型)强制转换
好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
弊端:不能使用子类的特有功能

抽象类:含抽象方法的类
抽象方法:没有方法体
public abstract class 类名
{
public abstract void 方法名();
}
抽象类不能直接创建对象,可以再创建一个子类,再用多态(父类引用子类)创建对象调用
抽象类的子类必须重写所有父类的抽象方法(不用加abstract)或定义子类为抽象类(加abstract)
抽象类不一定有抽象方法,有抽象方法的一定是抽象类
抽象类中有构造函数但不能实例化

java接口:对行为进行抽象(抽象方法)
public interface 接口名{}
可以再接口中直接定义一个抽象方法
类不能继承接口,用implements(实现)public class 类名 implements 接口名{}
接口也不能实例化,但可通过多态实现对象实例化(接口多态)

1.接口中无变量,只有成员常量,默认修饰符 public static final
2.常量可以直接用 接口名.常量名 来调用数据,且默认定义为静态
3.无构造方法,因为接口主要是对行为进行抽象,没有具体存在
4.接口中不存准非抽象方法,默认修饰符 public abstract
5.一个类如果没有父类,默认继承Object

类和类的关系:继承关系,只能单继承(一个子类只能继承一个父类)但是可以多层继承
类和接口的关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口(接口间用逗号隔开)
接口和接口的关系:继承关系,可以单继承,也可以多继承

上一篇:记录内网渗透学习进程--DAY17


下一篇:day17迭代器_可迭代对象_生成器函数