JAVA001【静态、继承、抽象类】

1.面向对象

1.1面向对象的三个特性:封装,继承,多态
1.2静态 非静态

语法区别:静态有static修饰 非静态:无static修饰

访问:类名.静态成员变量(推荐)或者 对象名,成员变量名 非:对象名,成员变量名

生命后期:跟随着类的销毁而销毁 跟随着对象销毁

数量:在内存中只有一份 每个对象都有自己独立的一份

@两种何时使用:判断所使用的方法是不是共同的 如itcast就是同一个 可以用static 但是名字可以用非静态,有多个学生

@静态方法使用注意:*不能在静态方法中访问对象的成员数据(非静态成员变量或者非静态成员方法) 只能访问静态成员变量或调用静态成员方法

如果需要使用非静态的方法之类的 不能是static静态方法

2.继承

2.1继承的引入:定义父类(超类,基类)
2.2继承是面向对象三大之一,是类与类的一种(组成,继承,代理)
2.3继承的好处:提高代码的复用性和扩展性
2.4格式:class 子类名 extends 父类{}

用来描述一种类型具有的属性和行为

2.5特点:

子类拥有父类(除构造方法之外)所有的成员变量和成员方法

子类可以访问父类非private的属性和方法

子类可以拥有自己成员变量和方法,即子类可以对父类进行扩展

子类不能继承父类的构造方法,但是可以访问(super关键字超类)

子类可以用给自己的方式实现父类的方法(方法重写),方法体不一样,sout

(不同于 重载:参数列名不同)

2.6注意:

子类方法声明和父类方法声明一致

子类重写方法之后,通过子类对象调用的是重写后的

子类重写方法时方法访问权限要大于等于父类的访问权限

父类私有方法不能被重写,即使子类有方法声明一样的方法也不属于重写

2.7注解:@Override 重写父类的方法 可以用注解

用来修饰方法,编译器在编译期会检测该方法是否是重写父类的方法。如果是,则编译通过,否则编译失败

2.8 单继承多继承 子类也可以用父类的父类

3.this super区别构造方法

  • this.成员方法名 参数列表
  • super.成员方法名 参数列表
  • this 在本类中查找成员方法 本类没有找到 到父类中查找方法
  • super 在父类中查找方法 父类的父类

:super() 父类无参数构造方法 super(x x)有参构造

:无参时 默认走父类的无参数的构造方法

注意:

  • 每个类构造方法中第一行都默认调用父类的无参构造方法

  • 调用父类构造方法的super必须写在第一行

  • 调用本类的其他构造方法this语句必须卸载第一行

  • this super 调用构造方法不能同时出现

    super可以解决的问题:

    super.成员方法名()复用父类方法的功能 一般在子类重写父类方法后又保留父类原有的功能时使用

    super(参数):给父类成员变量赋值

4.抽象abstract

抽象方法的概念:被abstract关键字修饰的方法就是抽象方法

修饰符 abstract 返回值类型 方法名(参数列表);

抽象类概念:被abstract关键字修饰的类就是抽象类

修饰符 abstract class 类名{}

继承抽象类的话 :将子类声明抽象类或者重写父类的抽象方法

作用:用来描述某种类型的属性和行为,如何实现

功能由子类重写方法决定

小结:被abstract修饰的方法和类叫抽象类和抽象方法

常见问题:

1.抽象类不能创建对象 有构造方法 让子类调用父类构造方法给父类成员变量赋值

2.抽象类一定是父类

3.abstract不能和private共存

4.有抽象方法一定是抽象类父类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值