Java 面向对象3

本章接面向对象1中特点继承,可看主页。

1.继承:     

        特点:继承要有一定的层次结构,而且要具备一定的可传递性。

                 子类继承了父类中所有的属性和方法,但是父类中私有的属性和构造方法子类无法继承。

                 私有的属性,只能属于当前类,其它类无法使用 构造方法不能被继承,因为构造方法是用来创建当前类对象的,如果子类能继承,则说 明子类也可以创建父类对象,违反了第一个特点。

                  子类也可以拥有自己特有的属性和功能 在Java中只支持单一继承,也就是说一个子类只能有一个父类,但是一个父类可以拥有多个子

        作用:提高代码的重用性

        使用extends关键字继承,语法为:

                访问修饰符   class 子类  extends  父类{}

                        示例:

public class Demo {
    public static void main(String[] args) {
        S1 s1=new S1();
        s1.display();
    }
}
class T1{
    private String name="GTA";
    private int age=96;
    String hous="一套空中别墅,一套市区房";
    String car="一辆古罗帝汗血宝马跑车,一辆劳斯莱斯全球限定版,暴君K12";
    String money="$15425893";
    public void display(){          //普通方法,void+随意起名字
        System.out.println("------这是父类的构造方法------");
    }
    public T1(String name){         //JVM默认执行父类的无参构造方法,如果没有将会报错,编译失败
        
        System.out.println("-------父类的构造方法-------名字:"+name);
    }
}
class S1 extends T1{
    public void display(){
        System.out.println("从父类继承的房子:"+hous);
        System.out.println("从父类继承的车子:"+car);
        System.out.println("从父类继承的存款:"+money);
        super.display();
    }
    public S1(){
        super("GTA");           //指定父类中有参的构造方法进行传参
        System.out.println("------这是子类的构造方法------");
    }
}

2.static关键字

        1.可以修饰成员变量、方法,修饰的变量成为类变量、类方法或者静态变量、静态方法。属于类

        2.没有static修饰的成员变量、方法,称为实例变量或者实例方法,都属于对象

        3.static修饰的变量或者方法,副本只有一个,就是只被JVM加载一次

        4.static修饰的变量或方法,在类被加载就会进行内存空间的分配;实例变量或方法,必须创  建对象才有空间。 

3.静态变量

        1.静态变量在使用时,可以通过 类名.属性名 的方式调用

        2.静态变量也可以通过 对象.属性名 的方式来调用(不建议常用)

        3.静态变量可以被类中的所有对象共享

                                被static关键字修饰的为静态变量

                        示例:

public class Demo1 {
    private static String name;
    private static int age;
    public static void main(String[] args) {
        Demo1 demo=new Demo1();
        demo.name="张三";
        demo.age=19;
        System.out.println(Demo1.name);.//调用static关键字修饰的静态属性(类名 .属性名)
        System.out.println(Demo1.age);
        System.out.println("----------------------");
        Demo1 demo1=new Demo1();
        System.out.println(Demo1.name);
        System.out.println(Demo1.age);

    }

}

4.静态方法

        1.静态方法使用,也是通过调用 类名.方法名(参数列表)的形式

        2.特点:

                1.在静态方法中只能调用静态的属性和方法

                2.在非静态方法中,可以调用静态方法和属性,也可以调用非静态方法和属性

                3.在静态方法中无法使用this和super关键字

                        示例:

public class Demo{
static String address="张三";
public static void main(String[]args){
System.out.println(address);
t1();
Demo.t1();
}
public static void t1(){
System.out.println("静态方法");
    }
}

5.静态代码块

        主要用来给静态的成员变量进行初始化

        位于类的内部,任何方法的外部。语法为:static{   }

                        示例:

public class Demo{
    //staic 关键字代码块
    static {
        String name="张三";
    }

    public static void main(String[] args) {
        Demo demo=new Demo();
        display();
    }
    public static void display(){
        System.out.println("静态方法"+"张三");
    }
}

        关于面向对象,基本上就是这些,面向对象的多态下一章方法重写会写到。还有一些关键字和向上向下转型决定单独写一篇,因为比较重要,关注我,下篇写面向对象的余下部分,谢谢各位!

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值