Java :
- 抽象类的简单概念和意义:
- 包名:域名相反。例: com.eric.test;
- 访问权限: (public/default/private/protected)
- public: 可以修饰类、成员变量和成员函数。没有任何限制,同一个包当中,或者不同包当中的类都可以自由访问;
- private:尅修饰成员变量和成员函数。只能在本类中使用;
- default: 不写权限修饰符的话就是default权限,可以修饰类、成员变量和成员函数。在同一个包中可以自由访问。跨包无法相互访问,并且如果子类继承的父类不在同一个包中,那么子类无法继承父类的成员变量和成员函数;
- protected: 拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数。允许跨包继承。(注意只有子类可以使用,而public可以允许任何类使用);
- public > protected > default > private
- 接口:
- 使用interface来定义,implements来实现;
- 接口都是抽象的,因此子类需要实现具体的方法;
- 接口里面的方法全是public;
- 实现interface使用implements关键字;
- 一个类可以实现(可以理解成继承,但是继承只能支持多继承)多个接口;
- 一个接口可以继承多个接口;
- IO流: InputStream/OutputStream是抽象类,继承其的子类为:FileOutputStream/FileInputStream。
- FileInputStream:包含的基本方法有:read(b:byte[ ], o: int offset, l: int length),b:byte类型的数组;o:为int型的偏移量,默认为0;l:为int型,表示需要读取的数组长度,最大不超过:buffer.length = byte[ x ];
- FileOutputStream:包含的基本方法有:write(byte[], o: int offset, l: int length),具体说明同上,只是length长度需要定义一个temp值来获取buffer的长度,避免超出能写入的最大值。
- super:由于构造函数无法被继承,所以需要利用super类来调用构造函数中的成员变量以至于减少代码的重复量。构造函数的基本用途也是减少代码的重复量;
- this:指“调用方法的对象的引用”,致命成员变量的对象是当前引用的函数的对象(例如:张三和李四所说的“我”);
- - eg:
- - String name;
- - int age;
- - public void eat(String n, int a){
- - this.name = n;
- - this.age = a;
- - }
疑点:
向上转型:
向下转型: