①封装
将属性和方法书写到类里面的操作就是封装
封装可以为属性和方法添加私有权限
②继承
子类默认继承父类的所有属性和方法
子类可以重写父类属性和方法
③多态
传入不同的对象,产生不同的结果
继承
两个类的属性和方法有很多重叠,继承可以解决代码的复用问题
继承案例
package extend;
//学生
public class Student {
public String name;
public int age;
private double score;//成绩
public void setScore(double score) {
this.score = score;
}
public void showInfo() {
System.out.println("名字"+name+"年龄"+age+"成绩"+score);
}
}
package extend;
//小学生
public class Pupil extends Student{
public void testing(){
System.out.println("小学生"+name);
}
}
package extend;
//大学生
public class Graduate extends Student{
public void testing(){
System.out.println("小学生"+name);
}
}
package extend;
public class Test {
public static void main(String[] args) {
Pupil pupil = new Pupil();
Graduate graduate = new Graduate();
pupil.name = "qqq";
pupil.age = 11;
pupil.setScore(11.1);
pupil.showInfo();
}
}
细节
例如:上面代码setScore
package extend;
public class Test {
public static void main(String[] args) {
Pupil pupil = new Pupil();
Pupil pupil1 = new Pupil("jack");
}
}
package extend;
//学生
public class Student {
public Student(){
System.out.println("父类无参。。。");
}
public Student(String name){
System.out.println("父类有参。。。");
}
}
ackage extend;
//小学生
public class Pupil extends Student{
public Pupil(){
super("name");
// super();//默认调用
System.out.println("子类无参。。。");
}
public Pupil(String jack) {
super("name");
System.out.println("子类有参。。。");
}
}
ctrl+h查看可以查看类的继承关系
先加载类,在方法区显示继承关系
package extend;
public class Test {
public static void main(String[] args) {
Son son = new Son();
System.out.println(son.name);
}
}
class GrandPa{
String name = "LJW";
String address = "徐州";
}
class Father extends GrandPa{
String name = "QYJ";
int age = 33;
}
class Son extends Father{
String name = "SJB";
}