`
angeo2010
  • 浏览: 19056 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JAVASE--面向对象2

 
阅读更多


父类和子类

子类到父类称为抽象(泛化)

父类到子类称为特化

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();)

分享到:
评论

相关推荐

    JavaSE进阶-01-面向对象.pdf

    在Java编程语言中,面向对象特性是其核心概念之一,本资料主要讲解了JavaSE进阶中的面向对象相关知识,包括final关键字、抽象类、接口、抽象类与接口的区别、Object类、package和import以及访问权限控制。...

    Java自学视频教程-JavaSE基础-面向对象基础-01、面向对象概述.mp4

    Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...

    Java自学视频教程-JavaSE基础-面向对象基础-04、面向对象实战:购物车案例拓展.mp4

    Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...

    Java自学视频教程-JavaSE基础-面向对象基础-05、面向对象语法:构造器、this.mp4

    Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...

    2021-2022-2学期面向对象与数据库课程设计,基于JavaSE+Swing+MySQL的校

    2021-2022-2学期面向对象与数据库课程设计,基于JavaSE+Swing+MySQL的校园宿_campus_dormitory_system

    2021-2022-2学期面向对象与数据库课程设计,基于JavaSE+Swing+MySQL的校园宿舍管理系统.zip

    2021-2022-2学期面向对象与数据库课程设计,基于JavaSE+Swing+MySQL的校园宿舍管理系统

    javase-思维导图.zip

    面向对象编程是JavaSE的重头戏。在思维导图中,这部分可能会详细展示类、对象、接口、抽象类、构造器、方法、继承、多态、封装等概念。其中,类是对象的模板,对象则是类的实例;接口提供了一种实现多继承的方式;...

    面向对象程序设计:JavaSE-任务71

    面向对象程序设计是Java语言中的核心概念,JavaSE(Java Standard Edition)是Java平台的基础,它主要用于桌面应用程序的开发。任务71是一个基于Java的图书馆借阅系统项目,旨在锻炼学生对面向对象编程的理解和应用...

    JavaSE--思维导图解析

    * 面向对象(OOP 语言) * 高性能 * 分布式 * 健壮性 Java 基础 * `main` 方法:`public static void main(String[] args)` * 编译命令:`javac xxx.java` * 运行命令:`java xxx.java` * 语法习惯: + 类名大...

    面向对象程序设计:JavaSE-任务51

    在这个任务中,我们关注的是如何利用JavaSE来实现特定的面向对象编程需求。 首先,让我们看下“英文生词本”程序的需求。这个程序需要一个“生词”类(Word)和一个“生词本”类(VocabularyBook)。在Word类中,...

    韩顺平-javase-从入门到精通学习笔记

    Java 是一种面向对象编程语言,由 Sun 公司开发。Java 语言的特点是简单、面向对象、跨平台、高性能。Java 语言可以分成三个方向:Java SE(桌面开发)、Java EE(Web 开发)和 Java ME(手机开发)。 Java 开发...

    面向对象程序设计:JavaSE-任务11

    面向对象程序设计是Java语言的核心特性之一,JavaSE(Java Standard Edition)是Java平台的基础,它为开发桌面应用提供了丰富的API。在这个任务11中,我们将深入探讨几个基础的编程练习,这些练习有助于巩固和理解...

    面向对象程序设计:JavaSE-任务91

    面向对象程序设计是Java开发的核心,本任务主要涉及JavaSE中的类、对象、容器和泛型等关键概念。首先,我们需要在"任务03 类和对象(1) 题目03_1"中已经定义的`Student`类的基础上,创建一个新的`StudentManagement...

    面向对象程序设计:JavaSE-任务21

    面向对象程序设计是Java开发的核心概念,JavaSE(Java Standard Edition)是Java平台的基础,它提供了用于开发桌面应用和服务器端应用的API。任务21是针对Java编程基础的练习,涉及类的设计、命名规范、控制台输出...

    面向对象程序设计:JavaSE-任务31

    面向对象程序设计是Java开发中的核心概念,它允许我们通过模拟真实世界中的对象来构建复杂的软件系统。在JavaSE中,我们通常会定义类来封装数据和行为,然后通过实例化这些类创建对象。任务31涉及到三个主要的编程...

    javaSE----基础

    Java是一种高级的、面向对象的编程语言,起源于1995年,由Sun Microsystems公司(现已被Oracle公司收购)推出。它以其“Write Once, Run Anywhere”(一次编写,到处运行)的理念,成为了跨平台应用开发的首选语言。...

    面试题总结---javaSE--适用于初学者

    2. **面向对象编程** - **类与对象**:类是对象的模板,对象是类的实例。 - **封装**:通过访问修饰符(public, private, protected)隐藏内部细节,只暴露必要的接口。 - **继承**:子类继承父类的属性和方法,...

    5-JavaSE之面向对象编程-类与对象(上)1

    面向对象编程是Java的核心特性,它使得代码更加结构化、可维护性更强。在这个主题中,我们将探讨类与对象的概念,以及与它们相关的其他关键概念。 1. **类与对象**: 类是面向对象编程的基础,它是描述一组具有...

    面向对象程序设计:JavaSE-任务81

    面向对象程序设计是Java语言的核心特性之一,JavaSE(Java标准版)提供了丰富的类库来支持这一编程模型。在任务81中,我们将探讨四个关键主题:字符串、异常处理、日期处理以及静态方法。 首先,关于字符串,Java中...

Global site tag (gtag.js) - Google Analytics