Java —— 继承与接口

矫情吗;* 2022-07-17 03:58 312阅读 0赞

1、继承性

1)、private:不可继承。

2)、protected:同一包或不同包间均可继承。

3)、public:不限。继承性与protected同。

此外,不指定上述三者的友好型只限于同一个包内继承。

2、继承后的访问权限

1)、private:只限于自身类内的访问。

2)、protected:实际创建的位置,与声明的位置在同一包中则可访问。如:

A类有protected方法functionA,B类继承A类,C类继承B类,C类有独特的protected方法functionC。若在Other类中用C类创建一个对象object。则object能否访问functionA方法取决于Other类与A类是否在同一包中,能否访问functionC方法取决于Other类与C类是否在同一包中。

3)、public:不限。

简言之,private限于类内,protected限于包内,public不限。

3、super与this

1)、super:用于调用子类隐藏了的父类的成员变量或方法。

2)、this:用于类内调用被局部变量或参数隐藏了的成员变量。

即super与this关键字都可“去隐藏”。

4、final

final关键字可以修饰类、成员变量和方法中的局部变量。有时使用final是为了出于安全考虑。

final类不能被继承,final方法不能被重载或重写。

5、对象的上转型对象

上转型对象,即将子类实体的引用赋给父类对象得到的对象。

可操作的变量或方法:

对象:新增的变量或方法、继承或重写的方法、继承或隐藏的变量。

上转型对象:继承或重写的方法、继承或隐藏的变量。

说明:即上转型对象只能调用所转父类所具有的变量或方法,但特殊的是,如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了子类重写的方法。从子类对象的构造过程便可很好理解。

子类对象构造过程:子类创建对象时,相应的父类的变量与方法也开辟了内存空间,但父类开辟的空间中只有能被子类继承的变量或方法对应的空间被该子类对象引用(拥有),且父类中被该子类重写的方法的空间将不被引用,而是引用了子类重写后的自己的方法,所以上转型后,调用此方法,将是子类重写后的方法。

6、多态

多个子类重写父类的同一方法所产生子类不同行为的现象。

7、abstract类和abstract方法

abstract修饰的类为抽象类。特点:1、可有抽象方法、非抽象方法(也可没有抽象方法)、常量或变量。2、因为拥有抽象方法,所以不能用new创建对象。

(抽象类最终是必须会被继承的类,且子类必须重写抽象犯法,所以abstract方法不能同时用final修饰。)

意义与重点:

抽象类只关心操作,即只关心方法名字、类型及参数,但不关心这些操作具体实现的细节,即不关心方法体。抽象类的作用也正是为了表明某些方法的重要性,为总体设计起着指导作用,从而不必拘泥于细节的实现,具体细节由子类实现。

8、接口interface

Java不支持多继承性,即一个类只能有一个父类。单继承性使得java简单、易于管理。为了克服单继承的缺点,java使用了接口,一个类可以实现多个接口。

接口声明:

interface 接口名{

接口体(常量定义与方法定义,不能定义变量);//接口中常量与方法一定都是public的,但可省略public

}

注:实现接口的类重写接口方法时一定不能忽略public,否则就降低了接口方法的访问权限,导致出错。

9、接口回调

接口回调与上转型类似,只是将实现接口的类的对象引用赋给接口声明的变量。(关键:接口也可像类一样声明变量!)

10、接口多态

同普通的多态。

发表评论

表情:
评论列表 (有 0 条评论,312人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java接口实现继承疑惑

    在Java中,接口和类是两种不同的实体,它们各自有自己的行为规范。 1. 接口(Interface): - 不包含方法的声明,只有常量。 - 一个类可以实现多个接口。 - 实

    相关 JAVA -- 接口继承(二)

    明确引用类型与对象类型的概念 首先,明确引用类型与对象类型的概念 在这个例子里,有一个对象 new ADHero(), 同时也有一个引用ad 对象是有类型的, 是

    相关 Java接口继承

    用接口实现多继承 在Java中一个子类只被允许继承一个父类,即只允许单继承。但一个类可以实现多个接口,通过实现多个接口的方式满足多继承的设计需求。如果多个接口中有相同的方