javaSE
final关键字
1.使用final可以使用以下声明:
1).声明类:声明的类不能有子类
2).声明方法:声明的方法发不能被子类覆写
3).声明变量:声明的变量就成为常量,常量不可以修改
抽象类:
概念:
包含一个抽象方法的类称为抽象类,抽象方法只是声明而未实现的类,所有的抽象方法或抽象类都必须abstract关键
字声明。对于抽象类来讲,不能直接进行实例化操作。如果想使用抽象类,抽象类必须被子类继承,而且被继承的子
类必须实现抽象类中的全部抽象方法。
接口:
概念:
接口是一个特殊的类,在Java中接口是有抽象方法和全局常量组成
一个类只能继承一个父类,一个类可以同时实现多个接口使用接口完成多接口的能力
一个接口虽然不可以继承一个抽象类,一个接口可以同时继承多个接口
应用:
从对象多态性的概念上来看,子类为父类实例化是一个比较容易的操作,因为可以发生自动向上转型关系那么调用方
法永远是被子类覆写过的方法。可以利用此概念通过对象多态性为抽象类实例化。
对象多态性
多态性是Java中最重要的部分,因为有多态性的存在,才可以让程序变得更加灵活。
多态性的特征:
方法的重载和方法的覆写属于多态性的一种体现。
真正的多态性还包括了一种称为对象多态性的概念
对象多态性主要指的是子类和父类对象互相转换的关系
向上转型:父类 父类对象 = 子类实例 >>自动完成
向下转型:子类 子类对象 = (子类)父类实例 >>强制完成
接口和抽象类
适配器设计模式
正常情况下一个接口的子类要实现全部的抽象方法。
interface Window{
public void open();//打开窗口
public void close();//关闭窗口
public void icon();//最小化
public void uncon();//最大化
}
class MyWindow implements Window{
}
用一个类先将接口实现,但是所有的方法都属于空实现,之后在继承此类
应该使用抽象类,因为抽象类也不能直接使用
interface Window{
public void open();//打开窗口
public void close();//关闭窗口
public void icon();//最小化
public void uncon();//最大化
}
abstract class WindowAdapter implements Window{
public void open(){};
public void close(){};
public void icon(){};
public void uncon(){};
}
class MyWindow extends WindowAdapter{
public void open(){
System.out.println("打开窗口")
}
};
public class AdapterDemo(){
public static void main(String [] args){
Window win = new MyWindow();
win.open();
}
}
抽象类与接口的区别
Object类
在Java中一切都是继承关系
class person{
}
一个类没有明确指定继承哪个父类,默认情况下继承Object类,以上语法写成以下形式
class person extends Object{
}
任何类对象都可以使用Object进行接收
class person extends Object{
public class ObjectDemo02{
public void static void main(String [] args){
Object obj = new Person();
Object obj2 = "hello"
}
}
}
对于object来讲只要是引用数据类型都可以接收
Interface National{};
class person extends Object implements National{
public class ObjectDemo03{
public void static void main(String [] args){
National na = new Person();//子类接口实例化
Object obj = na;//Object接口实例
National temp = (National)obj }
}
}
使用Object接收数组类型的数据
public class ObjectDemo03{
public void static void main(String [] args)
int i = [1,2,3,4,5,6,7,8,9];
Object obj = i;
int x = (int [])obj;
for(int j = o,j<i.length,j++){
Sysotem.out.println(j[i]+"、")
}
}
}
覆写object中的3个方法:
1.toString():对象打印时调用
2.equals():对相比较时调用
3.hashCode
匿名内部类
概念:匿名内部类是在抽象类和接口发展起来的
内部类的使用:
Java的图形界面
Spring开发框架
包装类
在Java中提倡一种概念:一切皆对象
八大基本数据类型及包装类
数值类型:Integer、Byte、Short、Long、Float、Double都是Number的子类
其他类型:character、Boolean
包装类的作用:
自动装箱及拆箱操作
字符串变成基本数据类型的操作