在学Java之前曾经学习过了C++,算是对编程有一点点了解,其实感觉到了学得越多不了解的也越多,Java的学习与C++存在差异,但既然是编程语言当然也会有相似之处;
Java的编程是完全面向对象的思路,而之前学习C++则主要侧重于面向过程,因而对于类的相关概念有许多认识上的不足;
Java的继承与C++类似:都存在子类和父类之分;
子类能继承父类哪些属性和方法?
子类能继承父类所有的属性和方法,但限于访问权限,部分属性和方法不能直接使用。
C++的类的数据成员访问有public,private,protected;
Java的类的数据成员访问有public,private,protected和缺省;
Java的访问权限:
Java的类分为: 当前类 同一个包下的类 不同包下的子类 其他
成员访问关键字
public 可访问 可访问 可访问 可访问
protected 可访问 可访问 可访问
缺省 可访问 可访问
private 可访问
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下为百度经验的引用:
java重载:允许多个同名但是形式参数个数或参数类型不同的方法存在同一个类中,在调用时根据形式参数列表来调用对应的方法。
java重写(覆盖):父类与子类之间的多态性,对父类的函数进行重新定义,在子类中定义的某方法与其父类有相同的名称和参数,就可以称为该方法被重写或者覆盖了。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
从java重载来看与C++的重载类似,以C++为例
以前学习C++的时候,在一个类中比如Student类
class Student
{
public:
string name;
int num;
string sex;
void study()
{
cout<<"学习";
}
//这就是重载
void study(string n)
{
cout<<n<<"学习";
}
};
我的理解是重载是在一个类中对函数(方法)在参数上进行修改;
而重写在C++中我还未接触过,所以在Java学习对这两个概念还不能理解;
重写涉及到了多态,多态是子类的不同差异;
重写是子类对父类的函数进行重新定义
在子类中定义的某方法与其父类有相同的名称和参数,就可以称为该方法被重写或者覆盖了。
父类的方法不满足子类的需要,子类可以重写父类的方法
要求:
0、需要有继承关系
1、方法声明(访问权限、方法返回值类型、方法名、参数(类型、个数) )必须完全一样(不能缩小)
参数名,对于方法的声明没有影响。
这些就是重写;
——————————————————————————————————————————————————————————(以上为个人对于初学Java的一些概念上的理解,有错误希望大家谅解)