java——继承、封装、多态概念和例子

一、封装

  java是面向对象的语言,为了让类的内部数据不被随意的访问修改,我们会用访问修饰符对其被访问权限进行修饰。例如我们经常看见的实体类。里面的成员变量我们就是用private修饰符进行修饰,然后提供getter、setter方法,这样外部就不能直接访问该类的成员变量了,只能通过get、set方法访问。总的来说封装就是我们用权限修饰符private对其方法和成员变量进行修饰,不让外部随意访问。

权限访问修饰符 类  子类 其他包
public
protected  
default(不写时默认值)    
private      

二、继承

  java中用extends表示继承的关系,如:public class Student extends Person{......}    父类:Person、子类:Student

  那子类能继承父类那些东西呢?

  1. 子类能继承父类所有public和protected修饰的成员变量和成员方法。用private修饰的不能继承。
  2.         default修饰(不写修饰符默认为default)的成员变量和成员方法,如果之类和父类同包,则能继承。否则不能继承。
  3.         如果出现子类和父类成员变量名或成员方法名相同的情况,父类的成员变量会被人隐藏,父类的成员方法会被覆盖。只能同过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

  子类和父类的初始化顺序:

    1.   父类静态变量
    2.   父类静初始化块
    3.   子类静态变量
    4.   子类静初始化块
    5.   父类非静态变量
    6.   父类非静初始化块
    7.   父类构造器
    8.   子类非静态变量
    9.   子类非静初始化块
    10.   子类构造器

三、多态

  https://www.cnblogs.com/chenssy/p/3372798.html

 参考资料:http://www.cnblogs.com/Qian123/p/6868437.html

百度文库:http://wenku.baidu.com/view/73f66f92daef5ef7ba0d3c03.html

猜你喜欢

转载自www.cnblogs.com/libh9999/p/9783457.html