Java封装继承多态

本文深入探讨了Java编程中的核心概念——封装、继承和多态。封装涉及属性的隐藏与访问控制,重载则关注方法签名的差异。继承允许子类继承父类的特性,而构造器用于初始化对象。多态则是父类引用指向子类对象的能力,允许在运行时动态绑定。了解这些概念对于提升Java编程能力至关重要。
摘要由CSDN通过智能技术生成

封装继承多态

this表示构造器的时候,必须写在第一行

封装

在定义类的属性的时候,一般需要对属性进行隐藏,不让外部对其直接访问

外部需访问属性时,提供公共的方法对属性的访问。

无需外部访问的属性不提供公共的方法,在类定义时赋值。(passwd)

重载

重载的方法方法名都相同

1. 参数个数不同
2. 参数个数相同,但类型不同
3. 参数个数类型都相同,但参数顺序不同
4. 返回值不同,其他相同,编译异常。
public static void method(short s) {
	System.out.println("short");
}
public static void method(int i) {
	System.out.println("int");
}
public static void main(String[] args) {
	short a = 1;
    //参数可自动类型转化,就近原则,优先匹配类型相同的方法
	method(a);
}
创建初始化对象

  1. 通过 new 开辟内存,赋默认值
  2. 通过代码进行显式赋值(类定义的时候给属性赋值)
  3. 通过构造器进行赋值(有参构造)
  4. 通过指定 set 方法对属性赋值(推荐)
构造器

可重载

不写任何构造方法,类默认给一个无参构造

定义了有参构造方法,类不提供无参构造,需定义

构造器:和类名相同,没有返回值,使用 public 修饰

继承

使用 extends 关键字 单继承

任何类都有父类,除了 Object 类(根父类)

子类可直接访问父类中非私有的属性和方法

子类在调用有参或无参构造器时,(super()) 先调用父类的默认无参构造器(初始化)

父类无无参构造器时,有有参构造,子类构造器 应加上 super(参数)

super

作用:继承关系中子父类 在子类中使用,访问父类属性和方法

super 和 this 调用构造器时,必须放在第一行,导致 super 和 this 不能同时用

只能在子类的构造器中调用父类构造器

子类与父类含有相同属性时,用 super 区分使用父类属性还是子类属性

重写
  1. 发生在子父类中,方法名相同
  2. 方法参数列表相同
  3. 权限不能缩小,异常不能扩大
  4. 返回类型:
    1. 引用类型:返回值可相同,不同,则子类的方法返回值是父类的子类类
    2. 基本类型:返回值必须和父类相同
  5. 父类中的静态方法和私有的方法不能被重写
  6. 子类调用父类的方法,重写了就调用重写的方法,没重写就调用父类的方法
多态

父类中:
public static void method2(){
  syso("父类的静态方法...");
}

子类中:
public static void method2(){
  syso("子类的静态方法...");
}
//多态 
FatherClass f = new SonClass();
//父类类型引用无法调用子类中独有的方法
//静态方法不重写,根据引用类型进行调用,而不是后面new出来的对象
f.method2();//输出父类的静态方法...

多态:编译看左边.运行看右边

当父类的引用指向子类对象时,

编译时:

引用调用的方法为当前类中定义的方法及父类的方法。

无法调用子类中特有的方法。

向下转型后,可调用子类特有方法

运行时:

输出结果由等号右边指向的子类对象决定:如果没有重写父类方法,则输出父类方法的内容。

如果重写了父类方法,则输出重写后的方法内容。静态方法不重写:

编译和运行都看左边。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值