1、封装
(一)基本概念:在一个类中,将属性私有化,并创建setter and getter方法来对外提供接口。
set方法:给属性赋值
语法:[修饰符列表] void set属性名(属性名第一个字母大写)(形参){ 方法体;}
get方法:读取属性值
语法:[修饰符列表] 返回值类型 get属性名(属性第一个字母大写) ()(return 属性;)
public class Test{
public static void main(String[] args){
//创建对象
User u1=new User;
//通过"引用."来调用get方法
u1.getName();
//通过"引用."来调用set方法,同时给属性赋值
u1.setName("张三");
}
}
class User{
//属性私有化
private String name;
//set方法
public void setName(String name){
this.name=name;
}
//get方法
public String getName(){
return name;
}
//创建无参构造方法,用来创建对象和给属性赋值
public User(){}
}
2、继承
(一)基本概念:凡是满足“A类名 is a B类名”,并且A类和B类中有相同的代码,就可以使用继承,其中A类称为父类,B类称为子类。
(二) 继承的作用:子类继承父类中所有的方法
//满足Cat is a Animal
//其中Animal为父类,Cat为子类
class Aniaml{
public void doSome(){}
}
class Cat extends Animal{}
(三)方法覆盖:当父类中的方法不能满足子类时,在子类中使用方法覆盖。
满足使用方法覆盖的条件:1、具有继承关系
2、方法名,返回值,形参都相同
3、访问权限不能更低
4、子类抛出异常不能更多
class Animal{
public void doSome(){
System.out.println("动物们喜欢玩耍");
}
}
class Cat extends Animal{
public void doSome(){
System.out.println("小猫喜欢吃吃鱼");
}
}
3、多态:
(一)概念:多种形态,编译和运行时有两种不同的状态。
编译期叫做静态绑定。
运行期叫做动态绑定。
(二) 基础语法:向上转型:子类转成父类(upcasting)
Animal a=new Cat();
向下转型:父类转成子类(downcasting)
Cat c=(Cat) a;
(三)注意:1、不管向上转型还是向下转型,都必须具有继承关系。
2、向下转型必须发生在向上转型之后,有了向上转型才有向下转型。
public class Test{
public static void main(String[] args){
Animal animal=new Cat();
Cat c=(Cat) animal;
}
}
class Animal{
public void doSome(){
System.out.println("动物喜欢玩耍");
}
}
class Cat extends Animal{
public void doSome(){
System.out.println("猫咪喜欢吃鱼");
}
}