面向对象篇(OOP)--02 继承、访问控制修饰符
2018-02-24 10:59
204 查看
1.什么是继承关系
2.extends关键字
extends关键字可以实现类的继承。子类可以继承父类的成员变量及成员方法。同时也可以定义自己的成员变量和方法。
Java语言不支持多重继承,一个类只能继承一个父类。但一个父类可以有多个子类。class Circle extends Shape{
int r;
public void setR(int r){
this.r=r;
}
}3.向上造型
一个子类的对象可以向上造型为父类的类型。 父类型定义的引用变量可以引用子类型实例。
Java编译器根据类型检查调用方法是否匹配。
4.继承中的构造方法
子类的构造方法中必须通过super关键字调用父类的构造方法,这样可以妥善的初始化继承自父类的成员变量。
如果子类的构造方法中没有调用父类的构造方法,Java编译器会自动的加入对父类无参构造方法的调用(如果该父类没有无参的构造方法,会有编译错误)。
5.instanceof关键字
对于一个父类的引用类型, 可以指向该类的对象也可以指向其任意一个子类的对象。
可以通过instanceof关键字判断其指向对象的实际类型。
6.方法的重写(Overwrite)
子类可以重写继承自父类的方法即方法名和参数列表与父类的方法
4000
相同;但方法的实现不同。当子类对象的重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的是子类的重写后的版本。。
在子类重写的方法中,可以通过super关键字调用父类的“原始”方法。
7.重写和重载的区别
重载:在一个类中,方法名相同,参数列表不同。
重写:在两个类中,并且是子类和父类的关系,签名相同。
重载:编译时,-------.java到.class的过程 (内存没东西,只看语法对不对)
重写:运行时,--------jvm加载.class并运行.class的过程(内存才有东西)
重载时看类型,重写时看对象。
8.访问控制---public和private
private修饰的成员变量和方法仅仅只能在本类中调用;而public修饰的成员变量和方法可以在任何地方调用。public修饰的内容是对外提供可以被调用的功能,需要相对稳定;private修饰的内容是对实现的封装,如果“公开”会增加维护的成本。
9.package语句
定义类时需要指定类的名称。但如果仅仅将类名作为类的唯一标识,则不可避免的出现类名冲突的问题。这会给组件复用以及团队间的合作造成很大的麻烦!在java语言中,用包(package)的概念来解决命名冲突的问题。
10.protected和默认访问控制
用protected修饰的成员变量和方法可以被子类及同一个包中的类使用。
默认访问控制即不书写任何访问控制符。默认访问控制的成员变量和方法可以被同一个包中的类调用。
11.访问控制修饰符的对比
2.extends关键字
extends关键字可以实现类的继承。子类可以继承父类的成员变量及成员方法。同时也可以定义自己的成员变量和方法。
Java语言不支持多重继承,一个类只能继承一个父类。但一个父类可以有多个子类。class Circle extends Shape{
int r;
public void setR(int r){
this.r=r;
}
}3.向上造型
一个子类的对象可以向上造型为父类的类型。 父类型定义的引用变量可以引用子类型实例。
Java编译器根据类型检查调用方法是否匹配。
4.继承中的构造方法
子类的构造方法中必须通过super关键字调用父类的构造方法,这样可以妥善的初始化继承自父类的成员变量。
如果子类的构造方法中没有调用父类的构造方法,Java编译器会自动的加入对父类无参构造方法的调用(如果该父类没有无参的构造方法,会有编译错误)。
5.instanceof关键字
对于一个父类的引用类型, 可以指向该类的对象也可以指向其任意一个子类的对象。
可以通过instanceof关键字判断其指向对象的实际类型。
6.方法的重写(Overwrite)
子类可以重写继承自父类的方法即方法名和参数列表与父类的方法
4000
相同;但方法的实现不同。当子类对象的重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的是子类的重写后的版本。。
在子类重写的方法中,可以通过super关键字调用父类的“原始”方法。
7.重写和重载的区别
重载:在一个类中,方法名相同,参数列表不同。
重写:在两个类中,并且是子类和父类的关系,签名相同。
重载:编译时,-------.java到.class的过程 (内存没东西,只看语法对不对)
重写:运行时,--------jvm加载.class并运行.class的过程(内存才有东西)
重载时看类型,重写时看对象。
8.访问控制---public和private
private修饰的成员变量和方法仅仅只能在本类中调用;而public修饰的成员变量和方法可以在任何地方调用。public修饰的内容是对外提供可以被调用的功能,需要相对稳定;private修饰的内容是对实现的封装,如果“公开”会增加维护的成本。
9.package语句
定义类时需要指定类的名称。但如果仅仅将类名作为类的唯一标识,则不可避免的出现类名冲突的问题。这会给组件复用以及团队间的合作造成很大的麻烦!在java语言中,用包(package)的概念来解决命名冲突的问题。
10.protected和默认访问控制
用protected修饰的成员变量和方法可以被子类及同一个包中的类使用。
默认访问控制即不书写任何访问控制符。默认访问控制的成员变量和方法可以被同一个包中的类调用。
11.访问控制修饰符的对比
相关文章推荐
- 面向对象 【访问修饰符 】【封装】【继承】【多态】
- C++面向对象开发:继承、多态、重载及访问修饰符
- 面向对象技术继承访问控制
- 面向对象程序设计之访问控制、继承与拷贝控制
- Java面向对象学习笔记 -- 2(访问控制修饰符)
- 面向对象,类的组合关系,继承,实现,方法重写,方法重载,this的使用,抽象方法和抽象类的比较,父类构造方法存在的意义,多态的是用和解析,各种访问修饰符
- java面向对象-super、继承、覆盖、多态、类加载、访问控制
- Java面向对象04-继承,访问控制修饰符,static和final
- 【c++】面向对象程序设计之访问控制与继承
- 面向对象特性,包括继承、封装、多态、抽象、访问控制
- C++primer学习:面向对象程序设计(3):访问控制与继承
- 面向对象程序设计:继承成员访问控制机制
- java-访问控制修饰符
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 关于java的访问权限控制,以关于继承的this和super小结
- java 访问控制修饰符public、 protected、 默认、private
- Java访问控制修饰符
- java访问控制修饰符
- Java| Java关键字-修饰符(访问控制修饰符:public,protected,private和非访修饰符)
- 类成员修饰符访问控制关系表