1、定义:继承允许创建分等级层次的类,就是子类继承父类的特征行为,使得子类对象具有父类实例的方法,
使得子类具有父类相同的行为。
2、继承的特性:
a、子类拥有父类非priavte的属性、方法;
b、子类可以拥有自己的属性和方法、即子类可以对父类进行扩展;
c、子类可以用自己的方式实现父类的方法;
d、java的继承是单继承,但是可以多重继承;单继承:一个子类只可以继承一个父类;多重继承:A类继承
B类,B类继承C类,即C类是B类的父类,B类是A类的父类;
e、继承提高了类之间的耦合性(继承的缺点,提高了代码间的联系)
3、extends关键字:类的继承是单一继承,一个子类只能拥有一个父类,extends只能继承一个类;
public class A { public A() { System.out.println("hello world"); } } // B子类继承A父类(extends只能继承一个类) public class B extends A{ }
4、implements关键字:implements使类可以继承多个接口,多个接口用逗号分隔;
5、super关键字:用来引用当前对象的父类,实现对父类成员的访问;
6、this关键字:当前对象的引用;
7、final关键字:声明类不能被继承,即最终类,修饰方法不能被子类重写;
a、语法: final class 类名 { 方法、属性 }
访问修饰符(public、private、default、protected) final 返回值类型 方法名(参数){ 方法体 }
b、实例变量也可以被定义为 final,被定义为 final 的变量不能被修改;被声明为 final 类的方法自动地声明
为final,但是实例变量并不是 final;
c、访问修饰符
public——对所有类可见,被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问;
private——在同一类中可见 不能修饰类(外部类),被声明为 private 的方法、变量和构造方法只能被
所属类访问;
default——在同一包内可见;
protected——对同一包内的类和所有子类可见 不能修饰类(外部类)
d、非访问修饰符
static——用来修饰类方法和类变量;
final——用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,
修饰的变量为常量,是不可修改的;
abstract——用来创建抽象类和抽象方法;
synchronized、volatile——主要用于线程的编程,synchronized 关键字声明的方法同一时间只能被一
个线程访问;
8、构造器:子类不能继承父类的构造器(构造方法、构造函数),如果父类的构造器带有参数,子类的构造器
中必须显示的通过super关键字调用父类的构造器(带参数);如果父类的构造器不带有参数,不需
要子类显示调用,系统会自动调用;