首页 > 学院 > 开发设计 > 正文

继承与多态

2019-11-08 03:09:58
字体:
来源:转载
供稿:网友

继承与多态

继承与多态继承继承概述java中继承的特点方法重写final关键字多态多态概述多态的分类抽象类 abstract接口 interfaceimplement

继承

1. 继承概述

多个类中存在相同属性和行为时, 将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 通过extends关键字可以实现类与类的继承。

class 子类名 extends 父类名 {}

2. Java中继承的特点

Java只支持单继承,不支持多继承。class SubDemo extends Demo{} //okclass SubDemo extends Demo1,Demo2...//errorJava支持多层继承(继承体系)class A{}class B extends A{}class C extends B{}

3. 方法重写

概念 子类中出现了和父类中一模一样的方法声明。 使用特点: 如果方法名不同,就调用对应的方法 如果方法名相同,最终使用的是子类自己的注意事项 父类中私有方法不能被重写子类重写父类方法时,访问权限不能更低父类静态方法,子类也必须通过静态方法进行重写。方法重写和方法重载的区别 ? 方法重载能改变返回值类型吗? Overload 与 Override 方法重写: 在子类中,出现和父类中一模一样的方法声明的现象。 方法重载: 同一个类中,出现的方法名相同,参数列表不同的现象。

方法重载能改变返回值类型,因为它和返回值类型无关。

4. final关键字

修饰类,类不能被继承修饰变量,变量就变成了常量,只能被赋值一次修饰方法,方法不能被重写

多态

1. 多态概述

某一个事物,在不同时刻表现出来的不同状态。 同时猫也是动物的一种,也可以把猫称为动物。

动物 d = new 猫();

2. 多态的分类:

a:具体类多态class Fu {}class Zi extends Fu {}Fu f = new Zi();b:抽象类多态abstract class Fu {}class Zi extends Fu {}Fu f = new Zi();c:接口多态interface Fu {}class Zi implements Fu {}Fu f = new Zi();

3. 抽象类 abstract

抽象类和抽象方法必须用abstract关键字修饰

abstract class 类名 {}public abstract void eat();

抽象类的几个小问题 - A:抽象类有构造方法,不能实例化,那么构造方法有什么用? 用于子类访问父类数据的初始化 - B:一个类如果没有抽象方法,却定义为了抽象类,有什么用? 为了不让创建对象 - C:abstract不能和哪些关键字共存 - final 冲突 - PRivate 冲突 - static 无意义

3. 接口 interface(implement)

接口的特点:

A:接口用关键字interface修饰

interface 接口名 {}

B:类实现接口用implements修饰

class 类名 implements 接口名 {}

C:接口不能实例化

D:接口的实现类

a:是一个抽象类。 b:是一个具体类,这个类必须重写接口中的所有抽象方法。接口的成员特点: A:成员变量 只能是常量 默认修饰符:public static finalB:构造方法 没有构造方法C:成员方法 只能是抽象的 默认修饰符:public abstract
上一篇:C# winform 捕获全局异常

下一篇:qt5 plugin

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表