一、继承的作用
如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量。减少重复代码,适应客户不断变化的需要。
继承的限制:子类不能访问父类的私有变量和方法;子类覆写的方法不能缩小权限。
二、继承的格式:
class Person {
private int age;
public void setAge(int age) {
if (age < 0 || age > 200)
age = 0;
else {
this.age = age;
}
}
public int getAge() {
return age;
}
}
class Student extends Person{
}
public class Ext {
public static void main (String args[]) {
Student stu = new Student();
stu.setAge(10);
System.out.println(stu.getAge());
}
}
三、构造方法
1、如果一个类没有实现构造方法,java编译器会给它定义一个空的构造方法
2、实例化子类对象时,先调用父类的构造方法,再调用子类的构造方法
3、super关键字:super表示父类,子类的构造方法里会默认调用super(),也可以在子类构造方法中首行自己调用super(),可加参数。
四、final关键字
final类不能有子类;final方法不能被覆写;final变量变成常量;
五、抽象类
abstract class 类名 {
属性;
普通方法 { }
// 抽象方法
访问权限 abstract 返回值类型 方法名 (参数) ; /* 只需要声明,不需要实现 */
}
作用:规定子类必须实现的方法,起“模板”作用
不能实例化对象
子类必须覆写全部抽象方法
六、接口
接口作用:
接口是公开的,侧重于方法;
定义接口就是定义调用对象的标准。java中的接口跟现实世界的USB接口进行类比。如果设备需要使用USB接口进行供电或者通信,那么就必须遵循USB接口的标准;
我们经常会看到这样的程序结构:最顶级是接口,然后是抽象类实现接口,然后才是具体类的实现。用户使用:把具体类的对象向上转换为接口类型并赋值给接口类型的引用,该引用调用接口的方法。用户只需要看接口的说明,不用关心具体类的实现。
接口语法:
(1)// 接口由全局常量、公共的抽象方法组成
interface 接口名称 {
全局常量;
抽象方法;
}
(2)子类可以继承多个接口,突破“单继承”限制;
(3)一个接口可以继承多个接口;
interface A {
public static final i = 10;
public abstract int getNumber( );
}
interface B {
public static final String name = "www.100ask.net";
public abstract int getName( );
}
class C implements A,B {
//覆写A中方法
public int getNumber () { return i; }
//覆写B中方法
public int getName () { return name; }
}