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.抛出异常范围可以被缩小,但不能扩大。
多态

注意事项:
- 多态是静态方法的多态
- 父类子类之间有关系
- 存在条件:继承关系、方法需要重写、父类引用指向子类对象 father f1 = new son();
- static、final、private修饰符的方法不能重写
浙公网安备 33010602011771号