面向对象有什么?
类:有现实生活中的一组拥有相同特征的对象,抽取出他们的共同特性封装在同一个类中。 对象:由类衍生出来的就叫做对象
类名 变量名 = new 类名(); 比如我们创建一个Cat类
Cat c = new Cat();首先Cat c 在栈中开辟一块内存用来存储c这个变量, new Cat() 在堆中开辟一块内存保存类中的属性
封装、继承、多态
顾名思义就是把一些不需要别人看到的代码隐藏起来,只对外提供访问接口,比如我们组装一台台式电脑,一些硬件要放在主机里面然后提供接口来输入输出信息。 使用private访问修饰符将属性私有化,向外提供get和set接口来访问这个属性
public class Dog { private Integer id; private String name; @Override public String toString() { return "Dog{" + "id=" + id + ", name='" + name + '\'' + '}'; } public Dog(Integer id, String name) { this.id = id; this.name = name; } public Dog() { } public void setId(Integer id) { this.id = id; } public void setName(String name) { this.name = name; } public Integer getId() { return id; } public String getName() { return name; } }由已知类派生新的类,使用extends关键字实现,被继承的类叫父类,派生出来的类叫子类
注意:
子类中通过super关键字来调用父构造方法一个父类可以有很多个子类,而一个子类只能有一个父类需要存在继承关系,父类的引用指向子类的对象 特点: 会丢失子类特有的属性和方法,会调用子类重写过的方法
比如:
public static void main(String []ages){ Animal a = new Cat();//Animal是父类,Cat是子类,Animal引用Cat System.out.println(a.action());//action为父类和子类共有的方法 }