Java继承、接口、试卷解析小结
2015-09-26 17:15
477 查看
一、Java中的继承
1.构造函数
方法名与类名相同,用来创建和初始化对象,通过new关键字进行调用,返回的是堆中的内存地址,继承中对父类的构造函数的调用,创建子类对象时,先执行父类的构造方法,再执行子类的构造方法;
(其中super()显式或隐式的位于第一行)
2.方法的重写与重载
重写:体现父类与子类之间的多态性,方法与其父类有相同的方法名、参数、返回类型,方法体不同,(相同的参数,不同的实现) 另外权限不能再缩小
重载:一个类中多态性的体现,方法名一样,参数类型一样,个数不一样,与返回值无关
二、接口与抽象类
1.eg:MouseAdapter抽象类 抽象类中的方法可以根据用户的需求对其选择进行不同的实现
ActionListener接口 接口中必须实现其所有的抽象方法(只有声明没得实现,即没有方法体)
2.接口其定义格式:(接口中定义的成员变量只能是不能被修改的常量,final修饰,必须给其赋值)
关于接口中省略掉的关键字?方法中的abstract 成员变量中的static、final
3.抽象类中构造函数存在的意义?
4.抽象类只能通过其子类对其进行实例化
5.抽象类中允许有静态代码块、静态方法 接口中没有(因为静态变量和静态方法在内存中分配了空间,然而接口仅仅是类的表现形式,是没有分配空间的)
三、试卷解析小结
1.集合框架:
List(I):数据有序,允许重复;常用的实现类有ArrayList,LinkedList;
Map(I) :键值对,键不允许重复,值可以重复;常用的实现类有HashMap;
Set(I) :数据无序,没有重复对象;常用的实现类有HashSet;
2.异常体系结构图、自定义异常
自定义异常的两种形式:继承Exception类;继承Throwable类
3 . String s = null;表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象.
String s = “”;表示申请了内存资源,但资源空间值为空。该语句表示声明并引用到一个对象,只不过这个对象为0个字节
String s = null;等同于String s;
借用知乎:String s=” 是你没说任何话 String s = Null 是你没法说话
4.TCP与UDP:
TCP(Transmission Control Protolcol 传输控制协议)特点:面向连接的、可靠的、基于字节流的传输层通信协议
UDP(User Datagram Protocol用户数据报协议) 特点:无连接协议、不可靠、高效率
5.流的包装
new FileInputStream(File)
new ObjectInputStream(FileInputStream)
new ObjectInputStream(InputStream)
new DataInputStream(InputStream)
new BufferedInputStream(InputStream)
new InputStreamReader(InputStream)
new BufferedReader(Reader)
6.一个.java源文件中可以包含多个类(非内部类),但是只能有一个public类.并且public类的类名必须与文件名一致.
7.HashMap 与 HashTable
HashMap:可以允许有空键,空值 ; 线程不同步,多线程访问时,需要自己手动加同步锁关键字 synchronized
HashTable:不允许有空键,空值 ; 是线程同步的
1.构造函数
方法名与类名相同,用来创建和初始化对象,通过new关键字进行调用,返回的是堆中的内存地址,继承中对父类的构造函数的调用,创建子类对象时,先执行父类的构造方法,再执行子类的构造方法;
(其中super()显式或隐式的位于第一行)
2.方法的重写与重载
重写:体现父类与子类之间的多态性,方法与其父类有相同的方法名、参数、返回类型,方法体不同,(相同的参数,不同的实现) 另外权限不能再缩小
重载:一个类中多态性的体现,方法名一样,参数类型一样,个数不一样,与返回值无关
public class Student { private String name; public Student(String name){ this.name = name; System.out.println("执行了父类的构造方法"); } public String study(String s){ System.out.println(name + "student is study"); return null; } } public class University extends Student{ private int age; public University(String name, int age) {//构造方法的重载 super(name); this.age = age; } public University(String name) {//父类无参的构造方法被重载了 子类中必须添加父类重载后的构造器 否则编译会报错 super(name); System.out.println("执行了子类的构造方法"); } // public University(){} //编译会报错 // public String study(String s){ // System.out.println(s); // return s; // } public static void main(String[] args) { University us = new University("zhangsan"); Student us1 = new University("a",1);//向上转型 对重载后的构造方法的应用 // us1.study("dax");//若子类重写了父类的study方法,返回dax 若子类没有重写父类的study方法,运行结果:astudent is study us.study("d");//子类没有重写父类的study方法,运行结果:zhangsanstudent is study 因为构造us对象的时候,调用了父类的构造方法,赋给了name="zhangsan",若将this.name = name;语句去掉,运行结果为nullstudent is study } }
二、接口与抽象类
1.eg:MouseAdapter抽象类 抽象类中的方法可以根据用户的需求对其选择进行不同的实现
ActionListener接口 接口中必须实现其所有的抽象方法(只有声明没得实现,即没有方法体)
2.接口其定义格式:(接口中定义的成员变量只能是不能被修改的常量,final修饰,必须给其赋值)
public interface Test { public static final String a = "A"; public abstract void method1(); } public class Test1 implements Test{ @Override public void method1() { String name = a;//对于接口中的成员变量(常量)可以直接用 } }
关于接口中省略掉的关键字?方法中的abstract 成员变量中的static、final
3.抽象类中构造函数存在的意义?
4.抽象类只能通过其子类对其进行实例化
public abstract class Person { private static String name; private static int age; public Person(String name,int age){ this.name = name; this.age = age; } public static void main(String[] args) { new Children_person("李四", 25); System.out.println(name+":"+age); } } public class Children_person extends Person{ public Children_person(String name, int age) { super(name, age); } }
5.抽象类中允许有静态代码块、静态方法 接口中没有(因为静态变量和静态方法在内存中分配了空间,然而接口仅仅是类的表现形式,是没有分配空间的)
三、试卷解析小结
1.集合框架:
List(I):数据有序,允许重复;常用的实现类有ArrayList,LinkedList;
Map(I) :键值对,键不允许重复,值可以重复;常用的实现类有HashMap;
Set(I) :数据无序,没有重复对象;常用的实现类有HashSet;
2.异常体系结构图、自定义异常
自定义异常的两种形式:继承Exception类;继承Throwable类
3 . String s = null;表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象.
String s = “”;表示申请了内存资源,但资源空间值为空。该语句表示声明并引用到一个对象,只不过这个对象为0个字节
String s = null;等同于String s;
借用知乎:String s=” 是你没说任何话 String s = Null 是你没法说话
4.TCP与UDP:
TCP(Transmission Control Protolcol 传输控制协议)特点:面向连接的、可靠的、基于字节流的传输层通信协议
UDP(User Datagram Protocol用户数据报协议) 特点:无连接协议、不可靠、高效率
5.流的包装
new FileInputStream(File)
new ObjectInputStream(FileInputStream)
new ObjectInputStream(InputStream)
new DataInputStream(InputStream)
new BufferedInputStream(InputStream)
new InputStreamReader(InputStream)
new BufferedReader(Reader)
6.一个.java源文件中可以包含多个类(非内部类),但是只能有一个public类.并且public类的类名必须与文件名一致.
7.HashMap 与 HashTable
HashMap:可以允许有空键,空值 ; 线程不同步,多线程访问时,需要自己手动加同步锁关键字 synchronized
HashTable:不允许有空键,空值 ; 是线程同步的
相关文章推荐
- Eclipse配置前台开发环境
- JAVA文本域插入表情
- java web 分页查询、显示
- test8.5
- 阿里巴巴中间件性能挑战赛(RPC篇 复杂版)
- Eclipse创建Maven Web工程
- 在Myeclipse中移除项目对Hibernate的支持
- 对比synchronized与java.util.concurrent.locks.Lock 的异同
- 深入解析Java的包(package)
- test8.4
- SSH——Struts2中引入Spring
- SSH——Struts2中引入Spring
- JAVA常见的编码问题
- LeetCode|Reverse Words in a String-java
- LeetCode|Simplify Path-java
- LeetCode|Binary Search Tree Iterator-java
- LeetCode|LRU Cache-java
- LeetCode|Isomorphic Strings-java
- LeetCode|Number of 1 Bits-java
- LeetCode|Rotate Array-java