java常见的问题
2016-02-14 15:40
429 查看
1. 接口与抽象类的区别?
抽象类:含有abstract修饰的class即为抽象类abstract类不能创建实例对象,不能有抽象的构造方法或抽象的静态方法,如果子类没有实现抽象父类中的所有 方法,那么,子类也必须定义为抽象类
接口:接口是特殊的抽象类.接口中的所有方法都必须是抽象的,接口中的方法定义默认为public abstract 。接口中的变量是全局常量,即public static final修饰的。
区别: 1)一个类可以实现多个接口,但只能继承一个抽象类.
2)抽象类中可以有普通方法和构造方法,但是接口只含有抽象方法.
3)抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
4)修饰上:抽象类的抽象方法可以是public,protected.而接口只能是public
5)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
2. 整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换 为int,所以,这些类型以及这些类型的 包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型
(即:范围小的可以扩大,而大的范围不可以缩小.1.0 -->1.00 1.01-->1.0(错了))
3.
只有记住抽象类与普通类的唯一区别:就是不能创建实例对象和允许有abstract方法。
4.
class A{
public A(String s) {
System.out.println("A....");
}
}
class B extends A {
public B(){
super("bbb..."); //a
}
}
子类必须使用super调用父类中构造方法,如果父类中含有无参的构造方法可以使用隐式调用,如果父类中不包含无参的构造方法的时候我们必须显示的调用有参的构造方法。
5.[b]面向对象的特征有哪些方面[/b]
封装:即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变(属性用变量定义,行为用方法进行定义)
抽象:
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物 的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有 关的方面。
继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类 所定义的内容作为自己的内容, 并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软 件的可重用性和可扩展性
多态:
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
抽象类:含有abstract修饰的class即为抽象类abstract类不能创建实例对象,不能有抽象的构造方法或抽象的静态方法,如果子类没有实现抽象父类中的所有 方法,那么,子类也必须定义为抽象类
接口:接口是特殊的抽象类.接口中的所有方法都必须是抽象的,接口中的方法定义默认为public abstract 。接口中的变量是全局常量,即public static final修饰的。
区别: 1)一个类可以实现多个接口,但只能继承一个抽象类.
2)抽象类中可以有普通方法和构造方法,但是接口只含有抽象方法.
3)抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
4)修饰上:抽象类的抽象方法可以是public,protected.而接口只能是public
5)抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
2. 整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换 为int,所以,这些类型以及这些类型的 包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型
(即:范围小的可以扩大,而大的范围不可以缩小.1.0 -->1.00 1.01-->1.0(错了))
3.
只有记住抽象类与普通类的唯一区别:就是不能创建实例对象和允许有abstract方法。
4.
class A{
public A(String s) {
System.out.println("A....");
}
}
class B extends A {
public B(){
super("bbb..."); //a
}
}
子类必须使用super调用父类中构造方法,如果父类中含有无参的构造方法可以使用隐式调用,如果父类中不包含无参的构造方法的时候我们必须显示的调用有参的构造方法。
5.[b]面向对象的特征有哪些方面[/b]
封装:即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为(方法)来读取和改变(属性用变量定义,行为用方法进行定义)
抽象:
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物 的相似和共性之处,并且会忽略与当前主题和目标无关的那些方面,将注意力集中在与当前目标有 关的方面。
继承:
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类 所定义的内容作为自己的内容, 并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软 件的可重用性和可扩展性
多态:
多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。
相关文章推荐
- net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
- 通过Struts源码生成chm格式帮助文档
- JavaWeb学习总结(一)——JavaWeb开发入门
- Java栈和堆的区别
- java虚拟机的简单介绍
- java 趣味题目解题。
- Eclipse中设置作者日期等信息
- MyEclipse中Junit使用
- Eclipse卸载插件
- 理解java中的深复制和浅复制
- Java NIO概述
- Spring AOP 简单例子
- this和super用法的总结
- XML读写之DOM
- java学习初体验之课后习题
- spring3.2源码工程搭建org.springframework.asm.Type导入错误
- Java多线程示例(模拟通话,sleep,join,yield,wait,notify,Semaphore)
- 批处理文件指定jre路径启动java桌面应用程序
- Java Web学习之JDBC连接
- javadoc-编码GBK的不可映射字符