JAVA Day16

JAVA Day16

封装

package oop;
class Person {
   private String name;
   private int age;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public int getAge() {
      return age;
   }

   public void setAge(int age) {
      this.age = age;
   }
}

继承

ps:快捷键:ctrl+H查看继承树形图

class Student extends Person{
     private int ID;

    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }
}

权限修饰符

​ private 本类内部可以访问,不能继承到子类;

​ default 本类内部可以访问,同包其他类可以访问,同包可继承;

​ protected 本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问,能继承到子类;

​ public 任何地方都可以访问,能继承到子类;

​ 访问权限范围:public>protected>default(默认)>private

package oop;
class Person {
   protected String name = "Leo";
}
class Student extends Person{
    public String name = "HaoNan";
    public void test(String name){
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }
}
public class demo01 {
    public static void main(String[] args) {
        Student student = new Student();
        //当new一个student对象时,调用了student构造器,而student构造器又调用了Person的构造器。在调用父类的构造器时,调用代码必须要在子类构造器的第一行。
        student.test("LeoDong");
    }

}
// 输出结果为:LeoDong HaoNan Leo

重写

package oop;
public class Demo02 {
    public void main(String[] args) {
        A a = new A();
        a.test();
        B b = new A();
        b.test();
    }
}
class A extends B{
    public static void test(){
        System.out.println("A=>test");
    }
}

class B {
    public void test() {
        System.out.println("B=>test");
    }
}
//运行结果:"A=>test" "A=>test"
//注意:
		1.重写只限于非静态方法。
        2.方法名、参数列表必须相同。
        3.修饰符范围可以扩大,但是不能缩小。
        4.抛出异常范围可以被缩小,但不能扩大。
        

多态

注意事项:

  1. 多态是静态方法的多态
  2. 父类子类之间有关系
  3. 存在条件:继承关系、方法需要重写、父类引用指向子类对象 father f1 = new son();
  4. static、final、private修饰符的方法不能重写
posted @ 2021-06-08 00:00  别来无恙。。  阅读(39)  评论(0)    收藏  举报