2021-5-10

复习

类的标准写法:属性私有、无参构造器、有参构造器、setget()参数、toString()方法。

static:可以修饰成员属性(成员方法、成员变量)通过类名.可以直接调用方法。一般是用作工具类。static修饰的属性只有一份,放在常量池中,给所有对象共享。

代码块:局部代码块、构造代码块(2)、静态代码块(1)、同步代码块。

1.继承的概述

  1. 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
  2. 子类可以直接访问父类中的非私有的属性和行为
  3. 通过extends关键字让类与类之间产生继承关系。

class SubDemo extends Demo{}

补充1:继承 一个类继承一个类 被继承的类叫做父类。用extends来实现继承。

补充2:子类能够继承父类非私有的属性,构造器不能被继承。

2.继承的特点

  1. Java只支持单继承,不支持多继承。

一个类只能有一个父类,不可以有多个父类。

class SubDemo extends Demo{} //ok

class SubDemo extends Demo1,Demo2.... //error

  1. java支持多层继承(继承体系)

class(A){}

class B extends A{}

class C exteends B{}

3.继承中的成员变量

  1. 如果子父类中出现非私有的同名成员变量时,子类要访问本类中的变量用this;   访问父类中的同名变量super。
  2. super的使用和this的使用几乎一致。
  3. this代表的是本类对象的引用;super当前子类对父类的应用。
  4. 如果子类中的局部变量和父类中的属性相同,那么就会发生就近原则。

补充1:public class Girl extends Person(){

int age=20;//当子类有和父类同名的属性时

public void test(){

System.out.println(age);//20

System.out.println(this.age);//20 当前类的age

System.out.println(super.age);//19 父类的age

}

public void cry(){//方法的重写:发生在父子类之间 方法名相同参数相同

//子类可以修改从父类继承过来的方法实现。

System.out.println(“默默地哭。。。”);

}

public void test2(){

String name=”qwer”;

System.out.println(name);//java中的就近原则

//System.out.println(this.name);//指父类中的name 想要调用父类继承过来的就要用this.

}

}

4.类中的成员方法

  1. 当子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容。如同父类的函数被覆盖一样。
  2. 继承这种情况时函数的另一个特性:重写(覆盖)(override)和重载overload,重写的应用举例:siri。

5.方法的重写

  1. 子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者覆盖。
  2. 父类中的私有方法可不可以被覆盖呢?子类根本就看不到父类的方法。
  3. 在父类覆盖方法中,继续使用被覆盖的方法可以通过super();函数名获取。
  4. 覆盖注意事项:方法重写 两同两小一大覆盖时,子类方法权限一定要大于等于父类方法权限。
  5. 覆盖的应用:当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。

补充1:  两同 指方法名相同   参数列表相同。

两小 指返回值类型(引用数据的类型 而且时父子类的关系)要小于等于父类的   抛出的异常要小于等于父类的

一大 指访问修饰词的范围要大于等于父类的。

补充2:java三大特征:封装 继承 多态。

6.继承中的构造方法

  1. 在对子类对象进行初始化时,父类的构造函数也会运行,那是因为子类的构造函数默认第一行有一条隐士语句super()。
  2. super():会访问父类中的空参数构造函数,而且子类中所有的构造函数默认第一行都是super()。

7.super关键字

  1. super和this的用法很像。
  2. This代表对象的引用和(谁调用就代表谁)。
  3. super()代表当前子类对象父类的引用。
  4. 当子父类出现同名成员时,可以用super进行区分。
  5. 子类要调用父类构造参数时,可以使用super()语句。

8.继承的优缺点

优点:提高了代码的复用性、提高了代码的可维护性。

缺点:类的耦合性增强了;开发的原则:高内聚低耦合;内聚:就是自己完成某件事情的能力。耦合:类与类的关系。

9.多态

  1. 指一个事物以多种形式存在。多态实际上说的就是方法。
  2. Java中多态的体现和前提:

(1)必须要有父类类型至香港子类对象。Person p = new Girl();

(2)必须有方法的重写。

  1. 运行时调用属性是父类的属性   运行时调用方法时子类的方法。

补充1:

运行期间绑定:会提示时父类的方法。

编译期间绑定:运行时真正调用的是子类的。

补充2:当发生多态时,调用属性看等号左边  调用方法看等号右边。

10.抽象类概述abstract

  1. 抽象定义:抽象是从多个事物中将共性的,本质的内容抽取出来。

例如:男人女人 都是人。

  1. 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。

11.抽象类的特点

  1. 抽象方法一定在抽象类中。
  2. 抽象方法和抽象类都必须被abstract关键字修饰。
  3. 抽象类不可以用new创建对象,因为调用抽象方法没意义。
  4. 抽象类中的抽象方法要被使用,必须由子类重写(覆盖)其所有的抽象方法后,建立子类对象调用;如果子类只覆盖了部分的抽象方法,那么该子类还是一个抽象类。
  5. 抽象类中可以有抽象方法也可以有非抽象方法。
  6. 抽象类和一般类没有太大的不同:该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂得东西。这些不确定的部分,也就是该事物的功能,需要明确出现。但是无法定义主体,也就是比一般类多了抽象方法而已。
  7. 特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。

补充1:抽象类不能实例化。

补充2:一个类要继承另一个类,那么这个类就要重写抽象类里面的所有抽象方法。

补充3:含有抽象方法的类一定是抽象类。

12.抽象类成员的特点

  1. 成员变量:可以有变量、可以有常量。
  2. 构造方法:可以有构造方法。
  3. 成员方法:可以有抽象方法、可以有非抽象方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值