在赋值和取值方法中,加入对属性的存取的限制

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方法

}

java的封装继承和多态

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访问父类汇中被子类覆盖的方法或属性