学习java随笔第八篇:封装、继承、多态

java和c#一样都是面向对象的语言。

面向对象的语言有三大特征:封装、继承、多态

封装

封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

class Person2
{
private String name;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
} private String sex;
public void setSex(String sex)
{
this.sex=sex;
}
public String getSex()
{
return sex;
} private int age;
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
} private double height;
public void setHeight(double height)
{
this.height=height;
}
public double getHeight()
{
return height;
}
} public class Person1 {
public static void main(String arges[])
{
Person2 p2=new Person2();
p2.setName("小黄");
p2.setSex("男");
p2.setAge(20);
p2.setHeight(1.70);
System.out.println("姓名:"+p2.getName()+",性别:"+p2.getSex()+",年龄:"+p2.getAge()+",身高:"+p2.getHeight());
}
}

学习java随笔第八篇:封装、继承、多态

继承

继承:发生在类与类之间,在已存在的类的基础之上进行继承,通过继承来共享父类的成员和方法,并加入新的方法。可以单继承,也可以多继承。

在Java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。

class Father
{
public String name;
public int age;
public String eye;
public String height;
public String cutis;
//Father类的构造器
public Father()
{ } public Father(String name,int age)
{
this.name=name;
this.age=age;
}
//重写Object类中的toString方法
/*public String toString()
{
String emp="姓名:"+name+",年龄:"+age;
return emp;
}*/
} public class son extends Father
{
public String spectacle_frame;
public son()
{ }
public son(String spectacle_frame)
{
this.spectacle_frame=spectacle_frame;
} public void getMes()
{
System.out.println(spectacle_frame);
}
public static void main(String arges[])
{
Father f=new Father("Father",50);
System.out.println(f);
son s=new son("Blue");
s.name="Tom";
s.age=20;
System.out.println(s);
s.getMes();
}
}
注释:重写Object类中的toString方法
学习java随笔第八篇:封装、继承、多态
取消注释:重写Object类中的toString方法
学习java随笔第八篇:封装、继承、多态

多态

多态:接口的多种不同的实现方式即为多态,同一个实体同时具有多种形式。

class fruit
{
public void getMes()
{
System.out.println("父类");
}
} class apple extends fruit
{
public void getMes()
{
System.out.println("apple子类");
}
} class orange extends fruit
{
public void getMes()
{
System.out.println("orange子类");
}
} public class racing_cycel {
public void show(fruit f)
{
f.getMes();
} public static void main(String arges[])
{
racing_cycel rc=new racing_cycel();
fruit f=new fruit();
apple a=new apple();
orange o=new orange(); rc.show(f);
rc.show(a);
rc.show(o);
}
}

运行结果

学习java随笔第八篇:封装、继承、多态

上一篇:【BZOJ3597】方伯伯运椰子(分数规划,网络流)


下一篇:vmware12 ubuntu14.01桥接模式静态IP上网