父类和子类
子类到父类称为抽象(泛化)
父类到子类称为特化
1.继承关系下的构造方法
super:
默认调用的,如果不提供,默认提供,如果提供了,必须在第一行;
super和this都用作调用构造方法时不能同时使用
1)在子类构造方法中调用父类的构造方法
2)在子类中访问父类成员
2.覆盖(@override 覆盖的标注,如果不符合覆盖原则的规范,则会报错)
(static,private,属性,不能有覆盖)
1)方法名必须一样
2)参数表一样
3)返回值类型要么一样,要么子类方法的返回值类型是父类方法返回值类型的子类
4)权限修饰符要么一样,要么子类的权限范围要大于父类方法的权限范围
5)异常
6)当用父类的引用去调用方法时:
如果用父类的引用操作子类对象且调用方法,时
看父类有没有这个方法
如果有:
如果没有:不能编译
首先看子类有没有覆盖父类的方法,如果有覆盖,就调用子类的方法;
如果没有,则调用父类的方法
Object:equals方法,比较的是地址
String:重写了Object,equals方法比较的是对象的内容(==比较的是地址)
String str = "11";
String str1 = "11";
String str2 = new String(11);
str.equals(str1);//true
str.equals(str2);//true
str == str1;//true(共享字符串池中的“11”)
str == str2;//false
3.static
静态属性,该类型的所有对象共用一份,且可以用类名直接访问(权限够)
非静态属性,该类型的所有对象各有一份
非静态方法,不仅可以访问静态成员,还可以访问非静态成员
静态方法仅能访问静态成员;
凡是被static修饰的成员,统称为类级别成员
凡是非静态成员统称为对象级成员
4.final
1)修饰属性(常量)
2)修饰方法,凡是被final修饰的非静态方法不能重写(覆盖)
3)修饰类(没有子类),例如 String
5.多态
第一阶段:Animal a = new Tiger(); 最低级的多态使用方式
第二阶段:使用参数来保证多个子类匹配 instanceof 或者 getClass, getClass比instanceof优秀点 举例多态1 Dinner
第三阶段:使用反射机制对入口方法进行耦合度的降低 举例duotai2 Car
6.抽象类(abstract)(抽象类或者父类相当于一个接口,只是比接口多了属性。
(接口仅是一个行为))
1)抽象类不一定有抽象方法
2)有抽象方法的类,一定是抽象类(抽象方法不允许有方法体)
3)继承抽象类的子类要么必须实现抽象类中的所有方法,要么就将子类变成抽象类
三个角色:
1)接口定义者
2)接口实现者
3)接口使用者
注意:
1)类之间的继承只能是单继承;
2)接口之间的继承可以是多继承;
public interface A {}
public interface B {}
public interface Interface extends A,B{
//相同效果
int a = 3;
//final int a = 3;
//static final int a = 3;
//public static final int a = 3;
void fun();//public absract void fun();
}
3)类与接口之间可以是多继承
7.接口
接口中定义的属性(一定是:public static final 修饰的,int a = 3;
等同于public static final int a = 3;)
接口定义的方法(一定是public abstract 修饰的void run();
等同于public abstract void run();)
分享到:
相关推荐
在Java编程语言中,面向对象特性是其核心概念之一,本资料主要讲解了JavaSE进阶中的面向对象相关知识,包括final关键字、抽象类、接口、抽象类与接口的区别、Object类、package和import以及访问权限控制。...
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
2021-2022-2学期面向对象与数据库课程设计,基于JavaSE+Swing+MySQL的校园宿_campus_dormitory_system
2021-2022-2学期面向对象与数据库课程设计,基于JavaSE+Swing+MySQL的校园宿舍管理系统
面向对象编程是JavaSE的重头戏。在思维导图中,这部分可能会详细展示类、对象、接口、抽象类、构造器、方法、继承、多态、封装等概念。其中,类是对象的模板,对象则是类的实例;接口提供了一种实现多继承的方式;...
面向对象程序设计是Java语言中的核心概念,JavaSE(Java Standard Edition)是Java平台的基础,它主要用于桌面应用程序的开发。任务71是一个基于Java的图书馆借阅系统项目,旨在锻炼学生对面向对象编程的理解和应用...
* 面向对象(OOP 语言) * 高性能 * 分布式 * 健壮性 Java 基础 * `main` 方法:`public static void main(String[] args)` * 编译命令:`javac xxx.java` * 运行命令:`java xxx.java` * 语法习惯: + 类名大...
在这个任务中,我们关注的是如何利用JavaSE来实现特定的面向对象编程需求。 首先,让我们看下“英文生词本”程序的需求。这个程序需要一个“生词”类(Word)和一个“生词本”类(VocabularyBook)。在Word类中,...
Java 是一种面向对象编程语言,由 Sun 公司开发。Java 语言的特点是简单、面向对象、跨平台、高性能。Java 语言可以分成三个方向:Java SE(桌面开发)、Java EE(Web 开发)和 Java ME(手机开发)。 Java 开发...
面向对象程序设计是Java语言的核心特性之一,JavaSE(Java Standard Edition)是Java平台的基础,它为开发桌面应用提供了丰富的API。在这个任务11中,我们将深入探讨几个基础的编程练习,这些练习有助于巩固和理解...
面向对象程序设计是Java开发的核心,本任务主要涉及JavaSE中的类、对象、容器和泛型等关键概念。首先,我们需要在"任务03 类和对象(1) 题目03_1"中已经定义的`Student`类的基础上,创建一个新的`StudentManagement...
面向对象程序设计是Java开发的核心概念,JavaSE(Java Standard Edition)是Java平台的基础,它提供了用于开发桌面应用和服务器端应用的API。任务21是针对Java编程基础的练习,涉及类的设计、命名规范、控制台输出...
面向对象程序设计是Java开发中的核心概念,它允许我们通过模拟真实世界中的对象来构建复杂的软件系统。在JavaSE中,我们通常会定义类来封装数据和行为,然后通过实例化这些类创建对象。任务31涉及到三个主要的编程...
Java是一种高级的、面向对象的编程语言,起源于1995年,由Sun Microsystems公司(现已被Oracle公司收购)推出。它以其“Write Once, Run Anywhere”(一次编写,到处运行)的理念,成为了跨平台应用开发的首选语言。...
2. **面向对象编程** - **类与对象**:类是对象的模板,对象是类的实例。 - **封装**:通过访问修饰符(public, private, protected)隐藏内部细节,只暴露必要的接口。 - **继承**:子类继承父类的属性和方法,...
面向对象编程是Java的核心特性,它使得代码更加结构化、可维护性更强。在这个主题中,我们将探讨类与对象的概念,以及与它们相关的其他关键概念。 1. **类与对象**: 类是面向对象编程的基础,它是描述一组具有...
面向对象程序设计是Java语言的核心特性之一,JavaSE(Java标准版)提供了丰富的类库来支持这一编程模型。在任务81中,我们将探讨四个关键主题:字符串、异常处理、日期处理以及静态方法。 首先,关于字符串,Java中...