在赋值和取值方法中,加入对属性的存取的限制
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age 》 200){
throw new RuntimeException(“老妖怪。。.。”);
}
this.age = age;
}
}
面向对象特征之二 继承(extends)
继承:是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
比如上面的动物类,每一个动物都有名字和年龄,都能叫,都会吃。但是具体每一种动物,又有自己特有的属性和行为,甚至相同的行为,也有千差万别。
继承是对某一批类的抽象,从而实现对现实世界更好的建模
提高代码的复用性
子类继承父类的语法格式如下:
修饰符 class subclass extends superclass {…。。}
public class Animal {
private String name;
private int age;
public void shout(){
System.out.println(“我的叫声很好听。。”);
}
//省略get、set方法
}
public class Dog extends Animal{
public void eat() {
System.out.println(“我吃骨头。..”);
}
}
Java继承:
1、Java只支持单继承,也就是只能继承一个类
2、如果一个类没有声明继承关系,默认继承Object类
3、子类继承父类全部的操作(除了构造方法),如果父类中的属性是private的,属于隐
式继承,不能直接 操作,可以通过set、get方法进行操作
在子类中,可以根据需要对从基类中继承来的方法进行重写
重写方法必须和被重写方法具有相同的方法名称、参数列表、和返回类型
重写方法不能使用比被重写方法更更严格的访问权限
public class Animal {
private String name;
private int age;
public void shout(){
System.out.println(“动物会叫。.”);
}
}
public class Dog extends Animal{
public void eat() {
System.out.println(“我吃骨头。..”);
}
@Override
public void shout() {
System.out.println(“汪汪。。汪汪。。。”);
}
}
Super:是直接父类对象的引用可以通过super访问父类汇中被子类覆盖的方法或属性