1、继承:
概念:继承是类与类的一种关系,子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用。
关键词:extends.
特点:单继承(接口可以实现多继承)
class animal{
public animal() {
}
}
class cat extends animal{
public cat() {
}
}
2、封装:
概念:隐藏实现细节,提供访问接口。将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,提高对象的易用性和安全性。
常见的实现方式就是:getter、setter.
/* 文件名: Demo.java */
public class Demo{
private int age;
private String name;
private String sex;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String getSex(){
return sex;
}
public void setAge( int newAge){
age = newAge;
}
public void setName(String newName){
name = newName;
}
public void setSex( String newSex){
sex= newSex;
}
}
用private 修改属性的可见性来限制对属性的访问。
3、多态:
概念:指允许不同类的对象对同一指令做出响应。即同一指令可以根据发送对象的不同而采用多种不同的行为方式。
/* 文件名: Demo.java */
public class Demo{
public static void main(String[] args) {
show(new Women());
show(new Man());
Person a = new Women(); // 向上转型
a.like();
Women w = (Women) a; // 向下转型
w.shop();
}
public static void show(Person a) {
a.like();
// 类型判断
if (a instanceof Women) {
Women w = (Women) a;
w.shop();
} else if (a instanceof Man) {
Man w = (Man) a;
w.shop();
}
}
}
abstract class Person{
abstract void like();
}
class Women extends Person{
public void like() {
System.out.println("衣服");
}
public void shop() {
System.out.println("美食");
}
}
class Man extends Person{
public void like() {
System.out.println("电子产品");
}
public void shop() {
System.out.println("篮球");
}
}
结果:
注:Java中的多态主要指引用多态和方法多态。
引用多态:父类引用可以指向本类对象,也可指向子类对象。引用多态的强大主要体现在调用属性、方法时,可以根据引用具体指向的对象去调用,例如:子类中重写了父类方法,即子类继承父类中的方法,并且想在原有的基础上作一定的扩展。
方法多态:子类中可以重写父类的方法,在调用方法时根据引用指向的子类对象决定调用哪个具体的方法。方法多态的强大主要体现在可以根据调用时参数的不同,而自主匹配调用的方法,例如:重载(在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可)。