---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
一、继承的特点
1、单继承性,也就是说java类只能有一个直接父类,但是java类可以拥有无限个间接父类;
2、通过extends关键字实现继承
3、java的子类不能直接调用父类的构造方法
4、java.long.object是所有类的父类
二、方法的重写
要求:
1、方法名相同,形参列表相同、返回值相同;
2、子类方法声明抛出的异常类应比父类方法抛出的异常类更小或相等;
3、子类的访问权限应比父类访问权限更大或相等;
注意:
1、方法的重写中的两个方法要么都是类方法要么都是实例方法;
2、方法的重写不能重写父类中用private修饰的方法
三、super关键字的使用
1、作用:子类方法中调用父类被重写的实例方法;
注意:
如果被覆盖的是类属性,在子类方法中可以通过父类名调用访问被覆盖的类属性;
2、super关键字调用父类的构造方法
子类构造方法执行体的第一行代码使用super显示调用父类构造方法,系统将根据super调用里传入的参数列表调用父类对应的构造方法;
注意:
1、子类构造方法中既没有super调用也没有this调用,系统将会在执行子类构造方法之前隐式调用父类无参的构造方法;
2、创建任何java对象,最先执行的总是java.long.Object类的构造方法;
例:
public class Animal{
public String name;
public int age;
public animal(String name,int age){
this.name=name;
this.age=age;
}
}
public class Bird{
public boolean mao;
public Bird(String name,int age,boolean mao){
super(name,age);
this.mao=mao
}
}
四、多态
父类对象指向子类对象
注意:
1)父类型的对象可以“指向”(引用)其子类的对象。但它不能访问其子类中新增加的成员(成员变量和成员方法)。
2)可以使用instanceof关键字来判断一个对象变量所“指向”(引用)的对象是否属于某个类。 语法:对象变量名 instanceof 类名
3)子类的对象可以直接当作父类的对象使用,称作向上转型。它是自动进行的。
4)从父类的对象到子类的对象的转换叫向下转型,向下转型要用强制类型转换。
方法多态需要满足的条件 ---> 面向父类编程
1) 要有继承
2) 要有方法的重写
3) 要有向上转型
4) 要有父类对象调用被重写的方法
五、初始化块
1、定义:初始化块是java类中的成员,用于对对象进行初始化操作;一个类里可以有多个初始化块,先定义的先执行;
2、格式:
[修饰符]{ }
注意:
1.初始化块的修饰符只能是static,被称为静态初始化块。初始化块中的代码可以是任何可执行性语句;
2、初始化块没有名称、标识,因此无法通过类和对象来调用。
3、初始化块只能在创建对象时自动执行而且字执行构造方法之前执行
3、静态初始化块
类加载后可以使用静态初始化块对整个类执行某些初始化操作;
注意:
1、静态初始化块在类初始化阶段执行,而普通初始化块在创建类对象是才执行;
2、在一个类中静态初始化块只能执行一次,而普通初始化块没创建一次对象就执行一次;
3、静态初始化块只能对类属性进行初始化,需要遵循静态成员不能访问非静态成员;
五、单列类
1、定义
一个类始终只能创建一个实例则这个类被称为单例类;
2、创建单例类:
该类的构造方法用private修饰;
提供一个public方法作为该类的访问点,且方法必须使用static关键词修饰(因为调用该方法之前还不存在对象只能使用类对用);
3、单例类示例
public class A{
private static A a;
private A(){}
public static A B(){
if(a == null){
a = new A();
}
return a;
}
}
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>