Java中继承,类的高级概念的知识点
1. 继承含义
在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance).
2. 继承的优点
A.代码的可重用性
B.子类可以扩展父类的属性和方法
C.父类的属性和方法可用于子类
D.设计应用程序变得更加简单
3. 如何判断类具有继承关系?
类与类的关系: a. has—a(组合关系)
b. is—a(继承关系)
4. Java中继承的实现(关键字:extends)
关键字extends出现在类声明时的类名后,extends后面跟着的是要继承的类的名称。例如:public class Salary extends Emp{
}
5. 继承具有单根性和传递性
6. 所有类的根类Object(基类,超类)
public class Emp extends Object{
}
Object类中的方法签名:
A.public final Class getClass( )
B.public int hashCode( )该方法返回对象的哈希值码。
C.public boolean equals(Object x)该方法可以检测两个对象是否相等。
D.protected Object clone() throws CloneNotSupportedException
E.public String toString()该方法返回对象的字符串表示。
F.protected void finalize() throws Throwable:该方法在对象将要被垃圾回收时调用。
G.public final void wait() throws InterruptedException:线程
H.public final void notify():线程
7. 方法重写(方法重写出现在子类中,子类重写父类的方法,构造方法不能被继承)
A.方法重写含义:子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。
B.子类重写父类需遵循的规则:
a. 子类的方法的方法名,返回值类型,参数列表都必须与父类中的相同。
b. 子类的访问修饰符必须不小于父类中的访问修饰符。(子类中的访问修饰不能比父类中的更严格)
c. 子类中重写的异常不能抛出比父类更多的异常。
8. super关键字
A.子类用关键字super来调用父类中重写的方法(super指代的是父类对象)
B.使用super调用父类的构造器,如果构造器没有使用super关键字,那么编译器会自动添加一个无参的super()来调用父类构造器
9. final关键字
a.final变量不能被改变
b.final类不能被继承
c.final方法不能再被重写
10. 访问修饰符
|
本类 |
同一包中不同类 |
不同包 |
子类 |
|
|
public |
Y |
Y |
Y |
Y |
|
protected |
Y |
Y |
Y |
|
|
default(不写) |
Y |
Y |
||
|
private |
Y |
11. 封装
A.含义:封装是使类中的成员变量都是private,并提供public方法访问这些成员变量的技术。
B.封装使用getter,setter,
例如:public int getId(){
}
public void setId(int id){
this.id = id;
}
C.封装优点:
a.类的成员变量可以成为只读或只写
b.类可以对存储在其它成员变量中的内容有一个整体的控制
c类的用户不需要知道类是如何存储数据的
12. 静态成员:用static修饰的成员,static可以被共享,访问静态成员要使用 类名. 。静态方法不能访问非静态成员。
13. 静态初始化块:
例如:public class Rad{
static {
//静态代码块出现在构造器之前
}
}
14. 非静态(成员代码块)(实例化初始块):
例如:public class Rad{
{
//实例化初始块
}
}
实例化初始块中的语句在任何父类构造器调用之后,在子类构造器调用之前执行。
15. 内部类:在类的内部定义的类,内部类所在的类类称为外部类。
A.内部类的特点 :
- 独立的class文件
- 同样需要编译
- 同样可以产生对象
B.静态内部类:
定义方法: class Outer{
static class Inner{
//静态内部类不能访问到外部的成员,除非外部成员也是静态成员
}
}
静态内部类创建对象:a.用外部类. b.导入内部类所在的包 c.用全限定名
C.成员内部类:
定义方法:class Outer{
class Inner{
//成员内部类可以访问到外部的成员
}
}
成员内部类创建对象:Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
D.局部内部类:只能在方法内部中使用
定义方法:class Outer{
Void fd(){
class Inner{
//局部内部类
}
}
new Inner().fd();
}
E.匿名内部类:没有名字
形式定义:new 类或接口的名字(){
//匿名内部类的主体
}
Java中继承,类的高级概念的知识点的更多相关文章
- java中枚举类到高级使用
参考博文: http://blog.csdn.net/qq_31655965/article/details/55049192 http://www.cnblogs.com/zhaoyanjun/p/ ...
- 关于对象的行为、数组、继承和类的高级概念(Java)
1.对象的行为: (1)方法调用栈:所有的方法调用都维护在一个称为调用栈的结构中. 第一个被调用的方法就是main(),该方法是Jvm调用的,因此main()方法总 ...
- java中继承thread类的其他类的start()方法与run()方法
java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...
- java面向对象编程——第八章 类的高级概念
8.1访问修饰符: public:该类或非该类均可访问: private: 只有该类可以访问: protected:该类及其子类的成员可以访问,同一个包中的类也可以访问: 默认:相同数据包中的类可以访 ...
- 基础知识(05) -- Java中的类
Java中的类 1.类的概念 2.类中的封装 3.对象的三大特征 4.对象状态 5.类与类之间的关系 ------------------------------------------------- ...
- [转]Java中继承、多态、重载和重写介绍
什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上 ...
- 【JAVA零基础入门系列】Day11 Java中的类和对象
今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...
- 细说java中的类
前言 最近在学习<java编程思想> 学到了内部类 类不就是class吗 天天用 还能讲出花来了不成... 其实不然,在java中,类的种类和使用方式多种多样,花样繁多.其中主要有 普通类 ...
- Java中的类反射
一.反射的概念 : 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序 ...
随机推荐
- 【sqli-labs】 less55 GET -Challenge -Union -14 queries allowed -Variation1 (GET型 挑战 联合查询 只允许14次查询 变化2)
http://192.168.136.128/sqli-labs-master/Less-55/?id=1' 试了几次,整型带括号正常了 http://192.168.136.128/sqli-lab ...
- 微信小程序音频长度获取的问题
小程序推荐使用wx.createInnerAudioContext()创建的innerAudioContext,我们也通过这个接口创建音频.音频的长度可以通过属性获取: 但是,给innerAudioC ...
- elasticsearch学习(1)简单查询与聚合
elastic 被用作全文搜索.结构化搜索.分析以及这三个功能的组合 一个ElasticSearch集群可以包含多个索引, 每个索引包含多个类型 一个类型存储着多个文档 每个文档又有多个属性 索引(名 ...
- input chrome下输入之后背景变为黄色的解决办法
之所以Input输入之后背景原因色变为可恶的黄色,是因为在chrome 下input加上了input:-webkit-autofill这个属性,里面写的就是这个问题出现的原因 代码就是:input:- ...
- Python基础-判断闰年
输入一个年份,判断该年份是否是闰年并输出结果.求它是否是闰年?要求:能被4整除不能被100整除或者能被400整除. y=input('请输入年份:') if(y%4==0 and y%100 != 0 ...
- 2017沈阳网络赛hdu6199 gems gems gems
gems gems gems Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) P ...
- ggplot画基本图形类型
df<-data.frame( x=c(3,1,5), y=c(2,4,6), label=c("a","b","c"))p<- ...
- BZOJ——T 1800: [Ahoi2009]fly 飞行棋
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1767 Solved: 1395[Submit][Status][Discuss] Descripti ...
- 洛谷 P2997 [USACO10NOV]旗帜Banner
P2997 [USACO10NOV]旗帜Banner 题目背景 题目大意(by:曹彦臣): 平面上有(0,0)到(n,m)的(n+1)*(m+1)个点.问有多少点对所连的线段不过其他点,且长度在[l, ...
- [转]使用代码去描述WCF配置文件
转自:使用代码去描述WCF配置文件 在应用程序部署的时候,WCF客户端因为服务器地址的变化,需要修改程序配置文件的地址URL,手动修改很不方便,还会造成错误,所以尽量把描述WCF配置文件的配置使用代码 ...