- 浏览: 39099 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (76)
- Dojo 组件 (1)
- 数据库 (7)
- Maven (3)
- 负载均衡 (4)
- Java (12)
- 多线程 (4)
- Spring (3)
- Java缓存 (3)
- 高并发 (3)
- 热部署 (2)
- 大数据 (3)
- 分布式 (1)
- Linux (4)
- 云计算 (1)
- Eclipse (2)
- Tomcat (2)
- Shell (1)
- Python (1)
- 测试 (3)
- 算法与数据结构 (1)
- 设计模式 (1)
- JQuery (1)
- Nginx (1)
- 开发工具 (7)
- JMS (2)
- CI 持续集成 (2)
- Java UI (0)
- UI (1)
- Jenkins (1)
- Ibatis (1)
- Hadoop (1)
- Zookeeper (1)
- Redis (1)
1. 抽象类和接口;
这是多态的一种体现,接口是函数方法名的集合,抽象类中可有方法体,子类继承抽象类必须实现抽象的方法,抽象类不可以被实例化。
接口中定义的方法,实现这个接口的类必须实现所有方法。抽象类中定义一个抽象方法,继承抽象类必须实现父类中的抽象方法。抽象类中定义的非抽象方法,可以被继承抽象类的子类得到。Java语言的单继承性决定了,一个类可以实现多个接口,但只能继承一个抽象类。抽象类中父类和之类间是继承关系,存在“is a”,父类和子类本质上应该是相同的。对接口这不是这样,接口和实现者间是实现了接口的契约而已,是“like a”。
面向对象程序设计的重点在于抽象,而Java中接口和抽象类就是设计的关键。接口和抽象类代表的就是抽象类型,就是需要提出的抽象层的具体表现。面向对象的编程,要提高程序的复用率,增加程序的可维护性、可扩展性,就必须面向接口编程,面向抽象的编程。
接口和抽象类结合,可实现适配器模式。Java接口在最上面,然后紧跟着抽象类,抽象类实现了接口。而其他属于这个抽象类的具体类可以实现Java接口或继承抽象类。Java语言API中采用了这种模式,并且遵循一定的命名规范:Abstract+接口名
接口
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public class ImplementInterface implements InfaceTesting {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
}
抽象类
public abstract class AbstractClass {
public String resturnStringValue() {
return "testing string";
}
public void getString() {
}
public abstract void getAbstractString();
}
public class ImplementAbstract extends AbstractClass {
@Override
public void getAbstractString() {
// TODO Auto-generated method stub
}
}
接口加抽象类
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public abstract class InterfaceAbstractClass implements InfaceTesting {
public String getValue() {
return null;
}
public abstract void checkValue();
}
public class TestAbstractInterface extends InterfaceAbstractClass {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
@Override
public void checkValue() {
// TODO Auto-generated method stub
}
}
一个类继承抽象类,抽象类实现了抽象接口,这主要用于设计了一个接口,但实现这个接口的子类并不需要实现接口中的全部方法。例如JMS的JmsTemplate。
public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations {}
JmsDestinationAccessor是一个抽象类,JmsOperations是一个抽象接口,JmsTemplate继承了JmsDestinationAccessor,而JmsDestinationAccessor又实现了JmsOperations这个抽象接口。
public abstract interface AbstractInfaceTest {
public abstract String getReturnValue();
public abstract void setReturnValue();
}
public abstract class TestAbstractClass {
public void getValues() {
System.out.println("AAA");
}
public abstract String getAbstractValues();
}
public class TestAbstractInfacterClass extends TestAbstractClass implements AbstractInfaceTest {
@Override
public String getAbstractValues() {
// TODO Auto-generated method stub
// come from TestAbstractClass
return null;
}
@Override
public String getReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
return null;
}
@Override
public void setReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
}
}
http://www.jianshu.com/p/2b5a9bdcd25f
http://blog.csdn.net/trojanpizza/article/details/6556604
http://www.importnew.com/12399.html
2.覆写和重载
覆写是在一个类中,方法名相同,参数个数,顺序,类型不同。重载是子类对父类方法的重新定义,覆盖于被覆盖函数只有函数体内容不相同。
http://www.runoob.com/java/java-override-overload.html
http://fatkun.com/2010/07/java-overload-and-overrid.html
3.构造函数:
构造函数调用,如果子类继承父类,构造函数从父类开始执行。如果调用super构造函数,必须放在第一条语句。
public class Base {
public Base() {
System.out.println("Base");
}
}
public class Checket extends Base {
Checket() {
super();
System.out.println("Checket");
}
public static void main(String[] args) {
Checket checket = new Checket();
}
}
输出:
Base
Checket
4.面向对象的设计要遵循:
理解抽象类:如果一个类中没有足够的信息来描绘一个对象就是抽象类。面向对象设计最核心的一个原则就是开放关闭原则OCP(Open-Closed-Principle),而抽象类是其中关键。OCP要求对扩展开放,对修改关闭。开闭原则说白了就是,应该在不修改现有代码的基础上,引入新功能。开闭原则是面向对象设计中“可复用设计”的基础,是面向对象设计中最重要的原则之一。实现开闭原则的关键是抽象化,并且从抽象化导出具体实现。开闭原则是面向对象设计的主要目标。
从语法定义层面看抽象类和接口的设计:接口是一种特殊像形式的抽象类。
从编程角度看抽象类和接口的设计:一个只能继承一个抽象类,却可以实现多个接口。
从设计理念层面理解:创建一个类时,最重要一点就是要考虑这个类发生变化会不会影响其他类。
5.强引用,软引用、弱引用和虚引用
http://www.kuqin.com/shuoit/20141019/342724.html
http://zhangjunhd.blog.51cto.com/113473/53092/
6.static
http://zhh9106.iteye.com/blog/2151495
http://ych0108.iteye.com/blog/2107180
7.JVM
http://renchx.com/jvm-data-area-lifecycle/
http://boy00fly.iteye.com/blog/1095263
8.
这是多态的一种体现,接口是函数方法名的集合,抽象类中可有方法体,子类继承抽象类必须实现抽象的方法,抽象类不可以被实例化。
接口中定义的方法,实现这个接口的类必须实现所有方法。抽象类中定义一个抽象方法,继承抽象类必须实现父类中的抽象方法。抽象类中定义的非抽象方法,可以被继承抽象类的子类得到。Java语言的单继承性决定了,一个类可以实现多个接口,但只能继承一个抽象类。抽象类中父类和之类间是继承关系,存在“is a”,父类和子类本质上应该是相同的。对接口这不是这样,接口和实现者间是实现了接口的契约而已,是“like a”。
面向对象程序设计的重点在于抽象,而Java中接口和抽象类就是设计的关键。接口和抽象类代表的就是抽象类型,就是需要提出的抽象层的具体表现。面向对象的编程,要提高程序的复用率,增加程序的可维护性、可扩展性,就必须面向接口编程,面向抽象的编程。
接口和抽象类结合,可实现适配器模式。Java接口在最上面,然后紧跟着抽象类,抽象类实现了接口。而其他属于这个抽象类的具体类可以实现Java接口或继承抽象类。Java语言API中采用了这种模式,并且遵循一定的命名规范:Abstract+接口名
接口
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public class ImplementInterface implements InfaceTesting {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
}
抽象类
public abstract class AbstractClass {
public String resturnStringValue() {
return "testing string";
}
public void getString() {
}
public abstract void getAbstractString();
}
public class ImplementAbstract extends AbstractClass {
@Override
public void getAbstractString() {
// TODO Auto-generated method stub
}
}
接口加抽象类
public interface InfaceTesting {
public void checkInterface();
public String getStringValue();
public void checkNull();
}
public abstract class InterfaceAbstractClass implements InfaceTesting {
public String getValue() {
return null;
}
public abstract void checkValue();
}
public class TestAbstractInterface extends InterfaceAbstractClass {
@Override
public void checkInterface() {
// TODO Auto-generated method stub
}
@Override
public String getStringValue() {
// TODO Auto-generated method stub
return null;
}
@Override
public void checkNull() {
// TODO Auto-generated method stub
}
@Override
public void checkValue() {
// TODO Auto-generated method stub
}
}
一个类继承抽象类,抽象类实现了抽象接口,这主要用于设计了一个接口,但实现这个接口的子类并不需要实现接口中的全部方法。例如JMS的JmsTemplate。
public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations {}
JmsDestinationAccessor是一个抽象类,JmsOperations是一个抽象接口,JmsTemplate继承了JmsDestinationAccessor,而JmsDestinationAccessor又实现了JmsOperations这个抽象接口。
public abstract interface AbstractInfaceTest {
public abstract String getReturnValue();
public abstract void setReturnValue();
}
public abstract class TestAbstractClass {
public void getValues() {
System.out.println("AAA");
}
public abstract String getAbstractValues();
}
public class TestAbstractInfacterClass extends TestAbstractClass implements AbstractInfaceTest {
@Override
public String getAbstractValues() {
// TODO Auto-generated method stub
// come from TestAbstractClass
return null;
}
@Override
public String getReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
return null;
}
@Override
public void setReturnValue() {
// TODO Auto-generated method stub
// come from AbstractInfaceTest
}
}
http://www.jianshu.com/p/2b5a9bdcd25f
http://blog.csdn.net/trojanpizza/article/details/6556604
http://www.importnew.com/12399.html
2.覆写和重载
覆写是在一个类中,方法名相同,参数个数,顺序,类型不同。重载是子类对父类方法的重新定义,覆盖于被覆盖函数只有函数体内容不相同。
http://www.runoob.com/java/java-override-overload.html
http://fatkun.com/2010/07/java-overload-and-overrid.html
3.构造函数:
构造函数调用,如果子类继承父类,构造函数从父类开始执行。如果调用super构造函数,必须放在第一条语句。
public class Base {
public Base() {
System.out.println("Base");
}
}
public class Checket extends Base {
Checket() {
super();
System.out.println("Checket");
}
public static void main(String[] args) {
Checket checket = new Checket();
}
}
输出:
Base
Checket
4.面向对象的设计要遵循:
理解抽象类:如果一个类中没有足够的信息来描绘一个对象就是抽象类。面向对象设计最核心的一个原则就是开放关闭原则OCP(Open-Closed-Principle),而抽象类是其中关键。OCP要求对扩展开放,对修改关闭。开闭原则说白了就是,应该在不修改现有代码的基础上,引入新功能。开闭原则是面向对象设计中“可复用设计”的基础,是面向对象设计中最重要的原则之一。实现开闭原则的关键是抽象化,并且从抽象化导出具体实现。开闭原则是面向对象设计的主要目标。
从语法定义层面看抽象类和接口的设计:接口是一种特殊像形式的抽象类。
从编程角度看抽象类和接口的设计:一个只能继承一个抽象类,却可以实现多个接口。
从设计理念层面理解:创建一个类时,最重要一点就是要考虑这个类发生变化会不会影响其他类。
5.强引用,软引用、弱引用和虚引用
http://www.kuqin.com/shuoit/20141019/342724.html
http://zhangjunhd.blog.51cto.com/113473/53092/
6.static
http://zhh9106.iteye.com/blog/2151495
http://ych0108.iteye.com/blog/2107180
7.JVM
http://renchx.com/jvm-data-area-lifecycle/
http://boy00fly.iteye.com/blog/1095263
8.
发表评论
-
Java8
2016-01-19 15:49 4251. http://ifeve.com/java-8-feat ... -
ThreadPool
2016-01-13 15:29 334http://cuisuqiang.iteye.com/blo ... -
java执行程序过程
2015-11-25 18:10 407程序执行过程: 1. Load ... -
java单例模式Singleton的设计
2015-11-25 17:19 453常用版本 public class Singleton { ... -
Jave Exception
2015-11-13 15:53 377一、 异常 Example of checked Excep ... -
读取图像文件
2015-04-10 17:19 3871. 将字节数组转换成图像文件 byte[] byteArr ... -
java反射
2013-11-07 16:41 401java反射 反射机制就是可以把一个类,类的成员(函数,属性 ... -
Java泛型
2013-10-31 11:34 548泛型 泛型是Java SE 1.5 ... -
java serializable 序列化
2013-10-28 13:33 535对象的串行化(Serialization) 一、串行化 ... -
GWT 例子
2013-09-22 15:45 412布局 http://www.csharpwin.com/do ... -
Java动态加载类ClassLoad和Class.forName
2013-03-07 11:38 1427Java 中的类加载器大致 ...
相关推荐
这套课程既可以作为从零基础开始学习的JAVA基础到高级学习教程,对于有JAVA基础的同学来说可以略过前面的JAVA基础章节,直接学习后续的JAVA高级部分课程。更可以灵活的作为章节技术,进行针对性的JAVA学习。还是要...
java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础课件java基础...
市面上目前流传的java基础视频教程都是讲一些最基础的java语法和相关API的应用,然而用人单位对初级程序员的要求越来越高,那些讲解java基础语法的视频教程已经无法满足大众的学习要求。本套视频教程录制完中国第一...
Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式
Java基础入门教程 第5章 Java基础类的应用(共42页).ppt Java基础入门教程 第6章 集合框架(共28页).ppt Java基础入门教程 第7章 Java中的异常处理(共26页).ppt Java基础入门教程 第8章 文件流的输入输出操作...
资源名称:Java基础加强系列视频课程资源目录:【】黑马程序员Java基础加强(01-10)【】黑马程序员Java基础加强(11-20)【】黑马程序员Java基础加强(21-30)【】黑马程序员Java基础加强(31-40)【】黑马程序员...
《Java 基础入门》课后习题答案 第 第 1 章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、 面向...
Java基础加强Java基础加强Java基础加强
Java基础思维导图涵盖大部分Java基础重点内容。适用于新手小白理解Java学习之路。
\Java基础类\Java基础类\Java基础类\Java基础类\Java基础类\Java基础类\Java基础类\Java基础类\Java基础类\Java基础类
完整版精品java课件 Java基础入门教程 Java程序设计 第1章 Java语言概述(共38页).ppt 完整版精品java课件 Java基础入门教程 Java程序设计 第2章 java语言基础(共31页).ppt 完整版精品java课件 Java基础入门教程 ...
java基础开发第一册希望对你们有帮助,其他还有很多资料
Java基础入门.pdf
java基础知识的培训ppt,对于java初学者来说可以有一些作用。
java基础知识大全(必看经典),里面包含了最基本的java基础知识,适合学习java的初学者和想要复习java基础的同学。
Java基础入门教程 第5章 Java基础类的应用(共42页).ppt Java基础入门教程 第6章 集合框架(共28页).ppt Java基础入门教程 第7章 Java中的异常处理(共26页).ppt Java基础入门教程 第8章 文件流的输入输出操作...
Java 基础入门,适合初学入门java的同学
java基础的案例分析和实例教学,适合新手及回顾查阅,对于夯实基础有好处
Java 基础
java基础知识,帮助初学者更快更好地掌握java。ppt内容具体易懂,希望对刚接触java的初学者有所帮助。