创建一个main方法,在同一个包下创建另一个类Student,里面封装一些方法和属性。如果是private私有属性的话,就不能被其它类调用,但是可以在需要用的类里面通过实例化对象,new一个student,用student.来调用
student里面的方法,通过方法来使用它的私有属性,例如:
package com.oop;
import com.oop.demo04.Student;
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.setName("littlebear_s");
System.out.println(student.getName());
}
}
package com.oop.demo04;
public class Student {
private String name;
private int id;
private char sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
添加get和set方法快捷键:alt + insert
有个人叫Gris
package com.oop.demo05;
public class Gris extends Person {
}
她老汉叫Person,而且账户里面有10个亿
package com.oop.demo05;
public class Person {
public int money = 10_0000_0000;
}
她想用:
package com.oop.demo05;
public class Gris extends Person {
public static void main(String[] args) {
Gris gris = new Gris();
System.out.println(gris.money);
}
}
结果遭她老汉发现了,把钱收起来了
package com.oop.demo05;
public class Person {
private int money = 10_0000_0000;
}
她就用不到了
package com.oop.demo05;
public class Gris extends Person {
public static void main(String[] args) {
Gris gris = new Gris();
System.out.println(gris.money);
}
}
查看继承关系快捷键:alt + h
子类可以通过super来调用父类的方法和属性
Gris要调用Person里面的属性:
public void test(){
System.out.println(super.money);
}
测试类里面的代码:
public static void main(String[] args) { Gris gris = new Gris(); gris.test();}
输出1000000000
一个类只要有有参构造,就一定要加上无参构造
在父类和子类里面各加上无参构造器:
public class Person { public Person(){ System.out.println("Person无参构造器执行了"); }}
public class Gris extends Person { public Gris(){//无参构造器 System.out.println("Gris无参构造器执行了"); }}
在测试类里面new一个Gris,输出结果为
//Person无参构造器执行了//Gris无参构造器执行了
说明了,程序在new的时候,先去使用父类的无参构造器,再使用子类的构造器,就相当于在子类的无参构造的第一行代码有一串隐藏代码:
public class Gris extends Person { public Gris(){//无参构造器 super();//隐藏代码,调用了父类的无参构造器,而且必须在子类构造器的第一行! System.out.println("Gris无参构造器执行了"); }}
需要有继承关系,子类重写父类的方法!
重写,子类的方法和父类必须要一致,方法体不同
为什么需要重写:
alt + insert : override
重写跟静态方法没有任何关系,只跟非静态方法有关,不能加static
输出结果为:
A=>test()
A=>test()
原文:https://www.cnblogs.com/littlebear-s/p/14826695.html