1.什么是封装,如何使用封装 package case1; public class TestPersonDemo { public static void main(String[] args) { /********* begin *********/ // 声明并实例化一Person对象p Person p = new Person(); // 给p中的属性赋值 p.setName("张三"); p.setAge("18岁"); // 调用Person类中的talk()方法 p.talk(); /********* end *********/ } } // 在这里定义Person类 class Person { /********* begin *********/ private String name; private String age; public String getName(){ return name; } public void setName(String name){ this.name = name; } public String getAge(){ return age; } public void setAge(String age){ this.age = age; } public void talk(){ System.out.print("我是:"+name+",今年:"+age); } /********* end *********/ } 2.什么是继承,怎样使用继承 package case2; public class extendsTest { public static void main(String args[]) { // 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息 /********* begin *********/ Cat c=new Cat("大花猫",6); c.voice("大花猫"); c.eat("大花猫"); System.out.println(c.getName()+c.getAge()+"岁"); /********* end *********/ // 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息 /********* begin *********/ Dog d=new Dog("大黑狗",8); d.voice("大黑狗"); d.eat("大黑狗"); System.out.println(d.getName()+d.getAge()+"岁"); /********* end *********/ } } class Animal { /********* begin *********/ private String name; private int age; public Animal(String name,int age){ this.name = name; this.age =age; } 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; } /********* end *********/ } class Cat extends Animal { // 定义Cat类的voice()和eat()方法 /********* begin *********/ public Cat(String name,int age){ super(name,age); } public void voice(String name){ System.out.println(name+"喵喵叫"); } public void eat(String name){ System.out.println(name+"吃鱼"); } /********* end *********/ } class Dog extends Animal { // 定义Dog类的voice()和eat()方法 /********* begin *********/ public Dog(String name,int age){ super(name,age); } public void voice(String name){ System.out.println(name+"汪汪叫"); } public void eat(String name){ System.out.println(name+"吃骨头"); } /********* end *********/ } 3.方法的重写与重载 package case4; public class overridingTest { public static void main(String[] args) { // 实例化子类对象s,调用talk()方法打印信息 /********* begin *********/ Student s=new Student("张三",18,"哈佛大学"); s.talk(); /********* end *********/ } } class Person { /********* begin *********/ String name; int age; public void talk(){ System.out.println("我是:"+name+"今年:"+age+"岁"); } /********* end *********/ } class Student extends Person { /********* begin *********/ String school; Student(String name,int age,String school){ this.name=name; this.age=age; this.school=school; } public void talk(){ System.out.print("我是:"+name+","+"今年:"+age+"岁"+","+"我在"+school+"上学"); } /********* end *********/ } 4.抽象类 package case5; public class abstractTest { public static void main(String[] args) { /********* begin *********/ // 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。 Student s=new Student("张三",20,"学生"); Worker w=new Worker("李四",30,"工人"); // 分别调用各自类中被复写的talk()方 印息 s.talk(); w.talk(); /********* end *********/ } } // 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。 abstract class Person { /********* begin *********/ String name; int age; String occupation; abstract void talk(); /********* end *********/ } // Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息 class Student extends Person { /********* begin *********/ public Student(String name,int age,String occupation){ this.name=name; this.age=age; this.occupation=occupation; } public void talk(){ System.out.println("学生——>姓名:"+this.name+","+"年龄:"+this.age+","+"职业:"+this.occupation+"!"); } /********* end *********/ } // Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息 class Worker extends Person { /********* begin *********/ public Worker(String name,int age,String occupation){ this.name=name; this.age=age; this.occupation=occupation; } public void talk(){ System.out.println("工人——>姓名:"+this.name+","+"年龄:"+this.age+","+"职业:"+this.occupation+"!"); } /********* end *********/ } 5.接口 package case7; public class interfaceTest { public static void main(String[] args) { // 实例化一Student的对象s,并调用talk()方法,打印信息 /********* begin *********/ Student s=new Student(); System.out.println(s.talk()); /********* end *********/ } } // 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk() interface Person { /********* begin *********/ final String name="张三"; final int age=18; final String occupation="学生"; abstract String talk(); /********* end *********/ } // Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息 class Student implements Person { /********* begin *********/ public String talk(){ return "学生——>姓名:"+this.name+","+"年龄:"+this.age+","+"职业:"+this.occupation+"!"; } /********* end *********/ } 6.什么是多态,怎么使用多态 package case8; public class TestPolymorphism { public static void main(String[] args) { // 以多态方式分别实例化子类对象并调用eat()方法 /********* begin *********/ Animal dog=new Dog(); dog.eat(); Animal cat=new Cat(); cat.eat(); Animal lion=new Lion(); lion.eat(); /********* end *********/ } } // Animal类中定义eat()方法 class Animal { /********* begin *********/ public void eat(){ } /********* end *********/ } // Dog类继承Animal类 复写eat()方法 class Dog extends Animal { /********* begin *********/ public void eat(){ System.out.println("eating bread..."); } /********* end *********/ } // Cat类继承Animal类 复写eat()方法 class Cat extends Animal { /********* begin *********/ public void eat(){ System.out.println("eating rat..."); } /********* end *********/ } // Lion类继承Animal类 复写eat()方法 class Lion extends Animal { /********* begin *********/ public void eat(){ System.out.println("eating meat..."); } /********* end *********/ }