JAVA面向对象之继承篇

    技术2022-07-10  141

    JAVA——面向对象之继承篇

    面向对象的三大特性:

    1、封装 :将共用的,重复的功能进行封装

    2、继承:一共性抽取个父类,让子类继承 ,子类可以继承父类的属性和方法同样也可以“重写”父类的方法

    ​ 形式: public class 子类 extends 父类{

    ​ }

    3、多态:按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态

    ​ 本章将重点给大家介绍继承

    继承:

    ​ 继承(英语:inheritance)是面向对象软件技术当中的一个概念。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。

    ​ 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

    ​ Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

    ​ 下面将以人类作为父类而学生类,教师类作为子类为大家说明子类与父类的实现形式。

    //父类 public class Person{ String name; int age; String sex; public void method(){ Sysyem.out.println("我是父类"); } } //子类,学生类 public class Student extends Person{ //通过extends关键字可以让子类继承父类的属性和行为 //也可以增加新的属性和方法 int grade; @Override public void method(){ System.out.println("我爱学习"); } }

    这样一来子类就继承了父类 name,age,sex等属性。

    重载与重写

    重载:

    1. 在一个类中 2. 方法名相同 3. 参数(类型不同、个数不同)

    重写规则:

    1、方法名和参数必须一致

    2、注解@Override重写 检测是否是重写

    3、返回值类型必须【小于等于】父类方法的返回值

    4、权限必须【大于等于】父类方法的权限

    a.public 公共的公开的,最大权限

    b. protected 受保护的

    c. (default) 默认权限

    d. private 私有的

    如上所示,方法method就在子类中重写

    super关键字与this关键字

    super: 1. 加载构造器 a. 子类的构造器会默认加载父类的构造器,通过 super(); b. 构造器只能调用一次,不可调用多次 c. 调用构造器的行为必须写在第一行 2. 调用父类成员变量 super.变量 3. 调用父类成员方法 super.方法()

    this:1、用this. 可表示当前对象

    ​ 2、在构造器首行表示调用其他构造器

    //父类 public class Person{ //父类属性 String name; int age; String sex; int num=10; //父类构造器 public Person(){ System.out.println("我是父类无参构造器"); } //父类方法 public void method(){ System.out.println("我是父类的方法"); } } //子类 public class Student extends Person{ int num=20; int age; //子类无参构造 public Student(){ //会默认加载父类无参构造 this(18); System.out.println("我是子类无参构造器"); } //子类有参构造 public Studet(int age){ this.age=age; } //重写父类方法 @Override public viod method(){ int num=30; System.out.println("局部变量为:"+num); System.out.println("本类的成员变量为:"+this.num); System.out.println("父类的成员变量为:"+super.num); } }

    接口

    jdk 1.7:

    接口遵循大驼峰命名规则 interface 关键字修饰

    a、接口中只能有 final 常量和抽象方法 b、常量使用 final 修饰,表示不可变 c、常量名全大写和下划线来区分

    d、方法必须是 public,默认就是 public

    jdk 1.8: 1、可以有默认方法,使用 default 修饰 2、静态方法

    //接口 public interface HelloWorld { // 常量 final int MAX_NUM = 10; // 抽象方法 void method(); // 默认方法 default void defaultMethod() { System.out.println("我是默认方法。"); } //静态方法 static void staticMethod() { System.out.println("我是静态方法。"); } } //子类 public class Zi implements HelloWorld { @Override public void method() { System.out.println("重写接口中的抽象方法。"); } }

    Processed: 0.011, SQL: 9