小生初来乍到,先膜拜各位大佬。我发现在学java时,人们都说java从入门到放弃,我觉得吧,学习java的面向对象特征是我们入门的必要条件,那么我们就来看看java面向对象几个特征的庐山真面目吧。好了,我们言归真正,下面给大家讲解一下java面向对象的几大特征。
一、继承:所谓继承,就是儿子继承父亲的,也就是子类继承父类。就比如说,王思聪和他爸,王思聪继承了他爸的财产等等,但是呢,他爸有赚钱的一个方法,当然,王思聪也有赚钱的方法,但是他们之间赚钱的方法不一样,一个是靠地产,一个是靠电竞,所以,这就涉及到了子类对父类的方法的重写,这就是继承里面非常重要的思想。但是王思聪可不可以继承多个爸爸呢,就比如说他干爹等等,显然是不行的,那么就是说,一个类是不能继承多个类。但是可以如下:a继承b,c既可以继承a也可继承b,但是c不能同时继承a和b。继承的好处就是它提高了软件的可重用性和可扩展性。例如:
1 public class Test extends A{ 2 public static void prt(){ 3 System.out.println("2"); 4 } 5 public Test(){ 6 System.out.println("Test");//3 7 } 8 public static void main(String[] args) { 9 A t = new A();//1 10 t = new Test();//2 11 } 12 } 13 14 15 class A{ 16 public static void prt(){ 17 System.out.println("1"); 18 } 19 public A(){ 20 System.out.println("A");//1 2 21 } 22 }
二、封装:顾名思义就是把变量和访问这个变量的方法放在一起,将一个类中的成员变量定义成私有的,只有这个类自己的方法才可以访问到这些成员变量,这就是对象的封装,把对同一事物进行操作的方法和相关的方法放在同一个类中,把方法和它操作的数据放在同一个类中。一般,封装都是和private关键字伴生的,你看到private就可以想到封装。例如:
1 public class People 2 { 3 //其中姓名,年龄都是私有属性,外部只能通过get方法访问 4 private String name; 5 private int age; 6 public String getName() { 7 return name; 8 } 9 public void setName(String name) { 10 this.name = name; 11 } 12 public int getAge() { 13 return age; 14 } 15 public void setAge(int age) { 16 this.age = age; 17 } 18 } 19 再来看个方法的封装: 20 //打印一个人name 21 public void showName() { 22 //相应的实现 23 People people = new People(); 24 String name = people.getName(); 25 System.out.println(name); 26 } 27 public static void main(String[] args) 28 { 29 showName(); 30 }
三、多态:多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编 程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象, 该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。多态是在继承的基础上实现的,如:Class cl=new Student();编译时看左边,运行时看右边。例如:
1 public class Print机 { 2 3 public static void main(String[] hf) { 4 // TODO Auto-generated method stub 5 print pt1=new printsmall1();//左边和右边不一样 6 print pt2=new printsmall2(); 7 } 8 9 10 } 11 12 13 class print{ 14 public void print(print print){ 15 16 System.out.println("打印"); 17 } 18 } 19 class printsmall1 extends print{ 20 printsmall1(){ 21 System.out.println("打印彩色的"); 22 } 23 } 24 25 26 class printsmall2 extends print{ 27 printsmall2(){ 28 System.out.println("打印黑白的"); 29 } 30 }
这就是用的多态。
四、抽象:关键字abstract 抽象就是把不确定的,看不懂的东西定义出来,也是每个子类都有的东西,但是又不同,如果有个抽象类,在用抽象时,子类要全部抽象父类的方法,不然子类仍然会是一个抽象类。它是一个通过传递给父类对象引用不同的子类对象从而表现出不同的行为 ...
如:现在要做一个人员作主体的系统,那么我需要把现实生活的人抽象成一个基础的实体类功能程序识别,我会声明一个people的类,这个类包含了name(名字),age(年龄),sn(身份证),sex(性别),height (身高),等等属性,这些属性基本都是我们现实生活中都有的标签。类抽象好了,就是封装,继承,根据业务进行相应功能逻辑实现。
好了,就先讲到这里吧。