java复习(5)---接口、继承、多态
Java作为完全面向对象语言,接口、继承和多态是三个非常重要的概念。
1.继承。
(1)关键字: extends
(2)子类用super()调用父类构造函数,用super().方法 调用父类的成员方法
(3)子类中 方法重写:更改权限(如: protected 改为 public ) 或修改方法返回值类型
重构:子类和父类成员方法的唯一不同是方法内容
(4)子类实例化时,会从父类从顶向下依次调用构造函数
2.Object类。
(1)Object是所有类的父类
(2)getClass()方法: 返回对象执行时的Class实例,然后接.getName()获取当前类的方法
(3)toString()、equals()方法,前面已经讲过啦,这里不再赘述。
3.对象类型转换。
(1)向上转型: 子类直接调用父类的方法。例如:鸡类继承自家禽类,定义的鸡实例当然是家禽,拥有家禽的属性和方法,当然可以调用拉,合法。
(2)向下转型: 需要显示类型转换。[看代码实例]
(3)intanceof: 判断一个实例对象是否属于一个类,可与向下转型结合。
4.方法重载。
(1)同一方法名,参数个数/类型不同。
(2)add(int ... a) :不定长参数a,相当于[]a 对待, 使用时:add(a,b,c,d,e);
5.多态。
相同功能的方法,在父类中定义,将不同类对象作为参数。调用时通过穿不同的参数调用不同的子类方法。
6.抽象类与接口。
抽象类即方法没有方法体的父类。接口中的所有方法也没有方法体。
例如:
public interface inter{
void draw();
}
7.类的高级特性随记。
(1).import: 可导入静态成员 如:import static java.lang.Math.mx; //导入静态成员方法
(2).final修饰词:修饰变量、方法、类,修饰后不可更改/重写/继承。
(3)内部类:类中嵌套类,内部类的实例化需要在外部类的非静态方法中实现 如:OutClass out = new OutClass(); OutClass.innerClass in = out.new innerClass();
测试样例如下:含(接口、继承、多态)
package re05;
public class ClassTest {
public ClassTest() {
System.out.println(this.toString() + "调用ClassTest构造函数");
}
public void doSomeThing() {
System.out.println("ClassTest_doSomeThing1");
}
public static void main(String[] args) {
ClassTest t = new ClassTest();
ClassTest1 t1 = new ClassTest1();
t1.draw(); // 接口方法 方法化
ClassTest1 t2 = new ClassTest1();
t = t2; // 向上转换
t.doSomeThing();
t1.doSomeThing();
if (t instanceof ClassTest1) // 判断父类对象是否属于子类
t1 = (ClassTest1) t; // 向下转换
t1.doSomeThing();
}
}
class ClassTest1 extends ClassTest implements inter { // 继承
public ClassTest1() {
// super(); //调用父类构造函数
System.out.println(this.toString() + "调用ClassTest1构造函数");
}
public void doSomeThing() { // 重构
System.out.println("ClassTest1_doSomeThing1");
}
public void draw() {
System.out.println("draw");
}
}
interface inter {
void draw();
}
java复习(5)---接口、继承、多态的更多相关文章
- Java复习(五)接口与多态
5.1接口 允许创建者规定方法的基本形式:方法名.参数列表以及返回类型,但不规定方法主体. 也可以包含基本数据类型的数据成员,但他们都默认为static和final 声明格式为 [接口修饰符]inte ...
- No2_4.接口继承多态_Java学习笔记_经典案例
import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import jav ...
- 记录:JAVA抽象类、接口、多态
JAVA抽象类.接口.多态 1. 多态 定义 多态是同一个行为具有多个不同表现形式或形态的能力.(多态就是同一个接口,使用不同的实例而执行不同操作) 如何实现多态 继承和接口 父类和接口类型的变量赋值 ...
- java面向对象(封装-继承-多态)
框架图 理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程强调的是功能行为 面向对象将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 面向对象的特点 ...
- Java三大特性(封装,继承,多态)
Java中有三大特性,分别是封装继承多态,其理念十分抽象,并且是层层深入式的. 一.封装 概念:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据 ...
- Java复习3-类的继承
前言 本次学习面向对象设计的另外一个基本概念:继承(inheritance).这是Java程序设计中的一项核心技术.另外,还要学习反射(reflection)的概念. 继承 类.超类.子类 publi ...
- Java 面向对象之接口、多态
01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...
- Java面向对象(接口、多态)
面向对象 今日内容介绍 u 接口 u 多态 第1章 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的 ...
- java基础(11):接口、多态
1. 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成. ...
- Java基础笔记-抽象,继承,多态
抽象类: abstract修饰 抽象方法必须定义在抽象类中,抽象类不能创建对象. 在抽象方法中可以不定义抽象方法,作用是:让该类不能建立对象. 特点是: 1.定义在抽象类中 2.方法和类都用abstr ...
随机推荐
- php写购物车(思路&源码)
本文介绍一个php实现的购物车代码,功能实现完整,具有一定的参考价值 这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的 具体分析如下: 对购物车里 ...
- PetaPoco 快速上手
今天来给大家分享一个好用的轻型的.net框架的ORM——PetaPoco 本着快速上手的原则,我们通过和EF对比,让大家能快速使用PetaPoco PetaPoco大家可能没有听说过,但大家一定听说过 ...
- python3.4 安装 scrapy 报错 VS2010
安装scrapy框架报错是常见问题 还好,本人只碰到其中一个bug,以下是此次安装经验 环境 py3.4 windows7 64位 安装有VS2010 pip包管理(pycharm) 报错信息 安装l ...
- 算法模板——计算几何2(二维凸包——Andrew算法)
实现功能:求出二维平面内一对散点的凸包(详见Codevs 1298) 很神奇的算法——先将各个点按坐标排序,然后像我们所知的那样一路左转,求出半边的凸包,然后反过来求另一半的凸包 我以前正是因为总抱着 ...
- 获取手机 IP
/** * 获取用户ip * * @return 获取用户ip */ + (NSString *)getIPAddress { NSString *address = @"an erro ...
- JVM-Java程序性能监控-初级篇
前篇 - 小伙们都知道,java程序的性能监控主要是针对jvm中heap的监控~ 那么在做压力测试时如何对heap.线程等一系列的指标进行的监控的呢? 首先-你若不懂命令,那么就需要了解一套Java程 ...
- C#基础笔记---浅谈XML读取以及简单的ORM实现
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...
- ZooKeeper的简单理解
1 ZooKeeper的一致性特点 概念 描述 备注 顺序一致性 以ZXID来保证事务的顺序性 原子性 以ZAB保证原子操作,要么成功,要么失败 单一视图 无论客户端从哪个服务器获取到关于应用的数据都 ...
- SqlServer转换为Mysql
昨天顺利把MySQL成功安装后,正准备着手把原来项目中的SQL SERVER数据库改为MYSQL数据库,可大量的表结构和表数据如要手动写,那就...... 接下来就是各种百度.谷歌.问先驱等,可得到的 ...
- Python 获取 网易云音乐热门评论
最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧.获取文本的方式有很多,比如从网上下载现成的文本文档,或者通过第三方提供的API进行获取数据.但是有的时候我们想要 ...