java——继承封装多态概念和例子
Posted libh9999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java——继承封装多态概念和例子相关的知识,希望对你有一定的参考价值。
一、封装
java是面向对象的语言,为了让类的内部数据不被随意的访问修改,我们会用访问修饰符对其被访问权限进行修饰。例如我们经常看见的实体类。里面的成员变量我们就是用private修饰符进行修饰,然后提供getter、setter方法,这样外部就不能直接访问该类的成员变量了,只能通过get、set方法访问。总的来说封装就是我们用权限修饰符private对其方法和成员变量进行修饰,不让外部随意访问。
权限访问修饰符 | 类 | 包 | 子类 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default(不写时默认值) | √ | √ | ||
private | √ |
二、继承
java中用extends表示继承的关系,如:public class Student extends Person{......} 父类:Person、子类:Student
那子类能继承父类那些东西呢?
- 子类能继承父类所有public和protected修饰的成员变量和成员方法。用private修饰的不能继承。
- default修饰(不写修饰符默认为default)的成员变量和成员方法,如果之类和父类同包,则能继承。否则不能继承。
- 如果出现子类和父类成员变量名或成员方法名相同的情况,父类的成员变量会被人隐藏,父类的成员方法会被覆盖。只能同过super关键字引用。(隐藏和覆盖是不相同的)
例子:
public class Inherit { public static void main(String[] args) { Person2 student = new Student("小王"); student.getMessge(); } } class Person2{ public String name; public Person2(){ System.out.println("Nothing!"); } public void getMessge(){ System.out.println("class Person"); } } class Student extends Person2{ public String name; public void getMessge(){ System.out.println("class student"); } public Student(String name){ super(); System.out.println(name+" is a student!"); } }
结果:
Nothing!
小王 is a student!
class student
子类和父类的初始化顺序:
- 父类静态变量
- 父类静初始化块
- 子类静态变量
- 子类静初始化块
- 父类非静态变量
- 父类非静初始化块
- 父类构造器
- 子类非静态变量
- 子类非静初始化块
- 子类构造器
三、多态
https://www.cnblogs.com/chenssy/p/3372798.html
参考资料:http://www.cnblogs.com/Qian123/p/6868437.html
百度文库:http://wenku.baidu.com/view/73f66f92daef5ef7ba0d3c03.html
以上是关于java——继承封装多态概念和例子的主要内容,如果未能解决你的问题,请参考以下文章