同名 logs 注意事项 pan pac color nds 对象的引用
概述:
1、多个类相同的属性和功能抽取成另一个类, 让具有特有功能的类继承这个类. 2、通过 extends 关键字可以实现类与类的继承
格式:
class 子类名 extends 父类名 {}
特点 :
1、一个类只能有一个父类,不能有多个父类 2、Java 支持多层继承
- package cn.czbk.no5;
- public class TestExtends {
- public static void main(String[] args) {
- C c=new C();
- c.ashow();
- c.bshow();
- A a=new A();
- B b=new B();
- a.apshow();
- System.out.println(b.a);
- }
- }
- class A{
- private int a;
- public void ashow(){
- System.out.println("A class");
- }
- private void aprshow(){
- System.out.println("A private show不可被外界访问");
- }
- protected void apshow(){
- System.out.println("A protected show");
- }
- }
- classBextends A{
- protectedString a="protected String";
- public void bshow(){
- System.out.println("B class");
- }
- }
- classCextendsB{}
继承的注意事项
1、子类只能继承父类所有非私有的成员 (成员方法和成员变量)
2、子类不能继承父类的构造方法
3、不要为了部分功能而去继承
- package cn.czbk.no5;
- public class TestExtends1 {
- public static void main(String[] args) {
- CC cc=new CC();
- }
- }
- class AA{
- public AA(String a){
- System.out.println(a);
- }
- }
- classBBextends AA{
- public BB(){
- super("abc");//继承AA类的话如果AA有自己定义构造方法的话要在这个地方显示声明System.out.println("BB cont");
- }
- }
- classCCextends BB{
- public CC(){
- //会默认调用父类的空参构造方法System.out.println("CC cont");
- }
- }
继承中成员变量的关系
this:当前对象的引用
1、this. 成员变量
2、this. 成员方法 (...)
3、this(...) 调用自己构造方法
super:当前对象父类对象的引用
1、super. 成员变量
2、super. 成员方法 (...)
3、super(...) 调用父类的构造方法
继承中子父类构造方法的关系
1. 子类构造默认会访问父类的空参构造, 什么都不写, 子类构造默认第一句是 super();
2. 如果父类没有空参构造, 子类可以显示通过 super(参数列表) 语句调用父类带参构造
3. 子类构造可以通过 this(..) 调用其他构造, 让其他构造去访问父类构造.
继承中成员方法关系
同名: 子类对象调用的是子类的方法.
方法重写: 子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。
重写和重载的区别:
重载的特点:在同一类中。方法名相同,参数列表不同。
重写的特点:要有继承关系。在子父类中方法的声明相同 (方法名和参数列表都相同)。覆盖 时,子类方法访问权限不能小于父类方法的访问权限。静态只能覆盖静态。
Java 面向对象—继承
来源: http://www.bubuko.com/infodetail-2147616.html