采用继承优化后的类图
继承关键字:extends
java继承语法:
修饰符 SubClass extends SuperClass{
//类定义部分
}
修饰符 SubClass extends SuperClass{
//类定义部分
}
SubClass:子类 SuperClass:父类
修饰符:
修饰符的访问权限:
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
private | ✔ | |||
默认 | ✔ | ✔ | ||
protected | ✔ | ✔ | ✔ | |
public | ✔ | ✔ | ✔ | ✔ |
※
一个类只能继承单个类。
方法重写:
*必须具有相同的方法名
*必须具有相同的参数列表
*返回值类型相同或是其子类
*不能缩小被重写方法的访问权限
重载和重写的区别:
重载:同一类中的同名方法,要求方法名相同,参数列表不同,与返回值类型、访问修饰符无关
重写:子类与父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同、访问修
饰符不能严于父类
super:代表对当前对象的直接父类对象的默认引用。
▶super必须出现在子类中(方法和构造方法)
▶可以访问父类的成员(属性、方法、构造方法)
▶注意访问权限的限制
*必须具有相同的方法名
*必须具有相同的参数列表
*返回值类型相同或是其子类
*不能缩小被重写方法的访问权限
重载和重写的区别:
重载:同一类中的同名方法,要求方法名相同,参数列表不同,与返回值类型、访问修饰符无关
重写:子类与父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同、访问修
饰符不能严于父类
super:代表对当前对象的直接父类对象的默认引用。
▶super必须出现在子类中(方法和构造方法)
▶可以访问父类的成员(属性、方法、构造方法)
▶注意访问权限的限制
1.关键字-------abstract
2.抽象类示例代码:
- public abstract class Pet {
- //类定义部分
- }
public abstract class Pet {
//类定义部分
}
3.抽象方法示例代码:
- public abstract class Pet {
- //类定义部分
- public abstract void print();//这一行就是抽象方法,必须出现在出现类中。
- }
public abstract class Pet {
//类定义部分
public abstract void print();//这一行就是抽象方法,必须出现在出现类中。
}
4.抽象类和抽象方法特点:
▣ 抽象类和抽象方法都通过abstract 关键字来修饰。
▣ 抽象类不能实例化。抽象类中可以没有、有一个或多个抽象方法,甚至全部方法都可以是抽象方法。
▣ 抽象方法只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。
▣抽象类可以没有抽象方法,有抽象方法的类必须是抽象类。
▣ 抽象类不能实例化。抽象类中可以没有、有一个或多个抽象方法,甚至全部方法都可以是抽象方法。
▣ 抽象方法只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。