基本特征 | 定义 | 具体实现方法 | 优势 |
---|---|---|---|
封装 | 隐藏实现细节,对完提供公共的访问接口 | 属性私有化、添加共有的 getter 、setter 方法 | 增加代码的可维护性 |
继承 | 从一个已有的类派生出一个新的类,子 <br> 类具有父类的一般特性,以及自身特殊 <br> 的特性 | 继承需要符合的关系:is-a | 1、实现抽象(抽出像的部分) 2、增强代码的可复用性 |
多态 | 向同一父类的不同子类对象发送同一条 <br> 消息,行为不同 | 通过Java接口/继承来定义统一的实现接口;<br> 通过方法重写为不同的实现类/子类定义不同的操作 | 增强代码的可扩展性、可维护性 |
1.封装
package com.lzyAB;
public class Student {
private int id;
private int age;
private String name;
private String sex;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
调用
package com.lzyAB;
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setId(1);
student.setName("lzyAB");
student.setAge(19);
student.setSex("男");
System.out.println("学生编号:"+student.getId());
System.out.println("学生姓名:"+student.getName());
System.out.println("学生年龄:"+student.getAge());
System.out.println("学生性别:"+student.getSex());
}
}
2.继承
package com.jc;
public class Animal {
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("睡觉");
}
}
继承父类Animal
package com.jc;
public class Dog extends Animal{
}
调用
package com.jc;
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.sleep();
}
}
3.多态
package com.dt;
public class Animal {
public void eat(){
System.out.println("饭");
}
}
继承父类Animal并重写父类方法
package com.dt;
public class Cat extends Animal{
public void eat(){
System.out.println("鱼");
}
}
调用
package com.dt;
public class Test {
public static void main(String[] args) {
Animal cat = new Cat();
cat.eat();
}
}