static关键字的作用
1.修饰的数据成员称为静态数据成员,他们被类的所有对象共享
2.修饰的成员方法称为静态成员方法,他们由类直接调用
3.修饰的代码块称为静态代码块,对象实例化是=时JVM自动执行他们
package packbag3.puc.ccmk;
class Person1{
private String name;
private static int age =18;
public Person1() {
}
public Person1(String name) {
this.name = name;
System.out.println(this.name);
aage();
}
static void aage(){
System.out.println(Person1.age);
}
}
public class Dream {
public static void main(String[] args) {
System.out.println(new Person1("lisi"));
}
}
static修饰数据成员
【访问权限控制符】 static 数据类型 数据成员名;
public static String sex = "男";//公共静态成员
引用静态数据成员
类名.静态数据成员;
Person.sex;//引用静态成员
static修饰成员方法
static 方法返回值类型 方法名(形参列表){
语句体;
【return 表达式;】
}
static void aage(){
System.out.println(Person1.age);
}
static int aage(int age){
return age;
}
调用static方法
类名.方法名(实参列表);
声明构造块和静态构造块
class 类名{
//定义数据成员
{
语句块; //构造块
}
{
语句体块; //静态构造块
}
}
class Person1{
private String name;
private static int age =18;
public Person1() {
}
public Person1(String name) {
this.name = name;
System.out.println(this.name);
aage();
}
static void aage(){
System.out.println(Person1.age);
}
}
继承
继承指的是在由一般类和特殊类形成的“一般-特殊”之间的类结构中,把一般类和所有特殊类都共同具有的属性和操作一次性地在一般类中进行定义,特殊类不再重复定义一般类已经定义的属性和操作,特殊类自动拥有一般类定义的属性和操作,特殊类的对象拥有一般类的对象的全部属性和操作,称为特殊类对一般类的继承
package packbag3.puc.ccmk;
import java.util.Random;
class Animal{
public String name;
public String food;
public Animal() {
}
public Animal(String name, String food) {
this.name = name;
this.food = food;
}
public void display(){
System.out.println(name+"喜欢吃"+food);
}
}
class Dog extends Animal{
public Dog() {
}
public Dog(String name, String food) {
super(name, food);
}
public void getdog(){
System.out.println(name+"跳");
}
}
class Fish extends Animal{
public Fish() {
}
public Fish(String name, String food) {
super(name, food);
}
public void getfish(){
System.out.println(name+"跃龙门");
}
}
public class suijishu {
public static void main(String[] args) {
Dog dog = new Dog("旺财","骨头");
dog.display();
dog.getdog();
Fish fish = new Fish("小鲤鱼","泡泡");
fish.display();
fish.getfish();
}
}
继承的特征
1.继承关系具有传递性
2.继承简化了人们对客观事物的认识和描述,继承数清晰体现类之间的层次结构
3.继承提供软件复用功能
4.继承降低了模块间的接口和界面,大大增强了软件的可维护性
5.具有多种继承形式
(1)多重继承,即理论上一个类可以是多个一般类的特殊类,他可以从多个一般类中继承属性和方法
(2)单继承,即一个子类只能有唯一的一个父类
在java中,出于对安全性和可靠性的考虑,类之间只支持单继承,通过接口机制实现多重继承
extends关键字
在java语言中通过extends关键字实现继承
class 子类名 extends 父类名{
//类体
}
class Dog extends Animal{
public Dog() {
}
public Dog(String name, String food) {
super(name, food);
}
public void getdog(){
System.out.println(name+"跳");
}
}
public Animal() {//父类
}
public Animal(String name, String food) {
this.name = name;
this.food = food;
}
public void display(){
System.out.println(name+"喜欢吃"+food);
}
}
class Dog extends Animal{//子类
public Dog() {
}
public Dog(String name, String food) {
super(name, food);
}
public void getdog(){
System.out.println(name+"跳");
}
}
super关键字
当子类调用父类的构造方法时可以用super关键字;
super(参数);
class Dog extends Animal{
public Dog() {
}
public Dog(String name, String food) {
super(name, food);
}
public void getdog(){
System.out.println(name+"跳");
}
}
super关键字的可用情况还有:
1.子类访问直接父类中被覆盖的数据成员
2.子类访问直接父类中被覆写的成员方法
总结:super()的作用就是帮助子类获取父类的特征