1:面向对象的特征:
(1)封装:(私有的属性,公共的方法)
封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口
public class Man
{
//对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
private String name;
private int age;
private Woman wife;
//对该人对外界提供方法的封装,可以设定妻子,姓名,年龄也可以获得男人的姓名和年龄
// 方法封装
public void setWife(Woman wife) {
this.wife = wife;
}
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;
}
}
public class Woman {
// 属性封装
private String name;
private int age;
private Man husband;
// 方法封装
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;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
(2)继承:(子类自动拥有父类的属性和方法,但是私有的除外)
public class code {
public static void main(String[]args){
child grandson=new grandson();
grandson.play2();
}
}
public class father {
private void play(){
System.out.println("father-play");
}
public void exit(){
System.out.println("father-exit");
}
public void play2(){
play();
exit();
}
}
public class child extends father {
public void play(){
System.out.println("child-play");
}
public void exit(){
System.out.println("child-exit");
}
}
(3)多态:(同一种方法,有不同的实现)
public interface Parent//父类接口
{
public void simpleCall();
}
public class Child_A implements Parent
{
public void simpleCall();
{
//具体的实现细节;
}
}
public class Child_B implements Parent
{
public void simpleCall();
{
//具体的实现细节;
}
}