父类和子类
子类到父类称为抽象(泛化)
父类到子类称为特化
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();)
分享到:
相关推荐
2020动力节点老杜javaSE进阶班面向对象教材,希望各位想学习和巩固javaSE的下载学习。楼主最近也在学习这个,配合视频感觉蛮好的。。。。。。
面向对象程序设计:JavaSE-任务21
面向对象程序设计:JavaSE-任务81
面向对象程序设计:JavaSE-任务11
面向对象程序设计:JavaSE-任务101
5-JavaSE之面向对象编程-类与对象(上)1
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
(2)将自己的程序和自己的程序功能说明文档压缩上传附件 (3)压缩文件命名方式:学号-姓名,如:2017001001-张三 (4)本次作业不仅限于题目所给的功能
(2)设计实现画板类,在画板类的main方法中①画一个圆形(即创建一个圆形对象,并给其成员属性赋值),然后调用方法获取它的面积和周长并打印 (1)定义时间类(类
(影响成绩评定)题目09_1在“任务03 类和对象(1) 题目03_1”中Student类的基础上,定义StudentManagementSystem类,用来封
(2)查询并输出所有科目不及格的人数及名单 (2)类中其他方法可自由发挥,比如打印学生信息的方法(如print()或toString())(3)自己定义包含ma
(2)能够添加英文生词到本中 (3)能够修改某个英文对应的中文翻译 (4)能够根据给定的英文单词,在本中查找其对应的中文翻译 (5)能够指定生词本可以保存的最大
1、编写Java程序(1)使用继承机制,分别设计实现抽象基类图形类,派生类圆形类、正方形类、长方形类,要求:①抽象图形类中有属性:画笔颜色、图形是否填充,有方法
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
面向对象是当今主流的程序设计思想,面向对象是对现实... (2)面向对象可以将复杂的业 务逻辑简单化,增强代码复用性; (3)面向对象具有抽象、封装、继承、多态 等特性。 面向对象的编程语言主要有:C++、Java、C#等
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...
JavaSE思维导图,从思维导图去复习整理java的思想脉络,然后联系自己学习到的知识点复习会更加的快速和高效,从基础的java语法到面向对象的编码思想,都有细致的总结,希望大家喜欢
Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。 使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的...