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中,被继承的类叫超类(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方法
取消注释:重写Object类中的toString方法
多态
多态:接口的多种不同的实现方式即为多态,同一个实体同时具有多种形式。
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); } }
运行结果