首页 > 编程语言 > 详细

Java(类的继承)

时间:2021-07-26 09:37:18      阅读:17      评论:0      收藏:0      [点我收藏+]

1.继承

  • extends的意思是”扩展“。子类是父类的扩展,使用关键字extends来表示。

  • Java里,一个类只能继承一个父类。

  • 继承是类与类之间的一种关系,此外还有依赖、组合、聚合等。

    public class Student extends Person{ /*Person extends Object*/
        ...
    }
    
  • 子类继承了父类,就会拥有父类的全部方法,而private私有属性及方法无法继承。

  • 在Java中,所有类,都默认直接或间接继承Object类 (Ctrl+H 可以查看类关系)

  • 被final修饰的类,无法被继承(断子绝孙)。

super & this

  1. super()调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或构造方法中
  3. super()和this()不能同时调用构造方法,因为this也必须写在第一行
  • super与this的区别:super代表父类对象的引用,只能在继承条件下使用;this调用自身对象,没有继承也可以使用。
    super(); //隐藏代码,默认调用了父类的无参构造,要写只能写第一行
    技术分享图片

    技术分享图片

方法的重写

  • 重写:子类的方法必须与父类方法必须一致,方法体不同。

  • 重写是方法的重写,与属性无关

  • 重写方法只与非静态方法有关,与静态方法无关(静态方法不能被重写)

  • 静态方法属于类,非静态方法属于对象

    public class B {
        public static void test(){ //静态方法
            System.out.println("B==>test()");
        }
    }
    
    public class A extends B{ //继承
        public static void test(){
            System.out.println("A==>test()");
        }
    }
    
    public class Application {
        public static void main(String[] args) {
            //方法的调用之和左边定义的类型有关
            A a = new A();
            a.test(); //打印 A==>test()
    
            //父类的引用指向了子类,但静态方法没有被重写
            B b = new A();
            b.test(); //打印 B==>test()
        }
    }
    
    • 方法名、参数列表必须相同
    • 修饰符范围可以扩大,不能缩小(public>protect>private)
    • 抛出的异常 范围可以被缩小,不能扩大
    • static(属于类,不属于实例),final(常量方法),private(私有)修饰的方法不能重写

Java(类的继承)

原文:https://www.cnblogs.com/EA7-King/p/15059291.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!