JAVA面向对象

  • 初识面向对象
    (1).什么是类
    什么是类这个问题本身就是抽象的,它类似于你买商品时,你要去超市(超市就是一个类);超市里面有各种商品,商品都区分开的,但是区分开的这些商品之间都是有关联关系的。这个就是类,通过类在来new(实例化)这个就是面向对象。
    (2).属性跟方法
    属性:就是每个类之间公共的数据;比如商品里面的公共属性就会有名字、价格...
    方法:就是每个类之间会触发的事件;比如你拿商品是一个方法、结账是一个方法...
    (3).什么是对象
    通过类里面写属性跟方法来new(实例化)的到的就是对象
  • 对象的创建分析
    通过关键字new(实例化)来创建写
  • 方法的重写
    //父类
    public class TestParentClass {
    	public void eat() {
    		System.out.println("我是一个父类方法");
    	}
    }
    //子类
    public final class TestSubclass extends TestParentClass {
        @Override
        public void eat() {
            System.out.println("我是子类重写方法");
        }
        public static void main(String[] args) {
            TestSubclass testSubclass = new TestSubclass();
            testSubclass.eat();
        }
    }
    
  • 面向对象的三大特性
    封装:把代码简化就是封装
    继承:类是可以继承父类也可以写个类来让子类继承
    多态:父类引用指向子类对象等于像上转型(父类new子类);通过方法重写实现不一样的事情时;(注:多态指的时方法,属性时不存在多态的);存在条件需要:继承关系、方法重写、父类引用指向子类(new的谁执行谁的方法,父类可以指向子类不能调用子类独有的方法)
  • 抽象类和接口
    (1)抽象类
    abstract => 抽象类
    注:类只能单继承,接口可以多继承;抽象类不存在构造方法;
    抽象类可以写普通方法跟抽象方法(可以写代码块/结果体),普通类不能写抽象方法;
    抽象类不能去new只能子类去实现他,他是一种约束!!!
    //父抽象类
    public abstract class TestAbstract {
    	//这是一个抽象方法,
    	public abstract void run(); 
    	//当然这里面也可以是普通的方法
    	public void eat() {
    		System.out.println("我是一个在抽象类里面的普通方法");
    	}
    }
    //子类
    public final class TestSubclass  extends TestAbstract {
        @Override
        public void run() {
            System.out.println("我是方法重写");
        }
        public static void main(String[] args) {
            TestSubclass testSubclass = new TestSubclass();
            testSubclass.run();
            testSubclass.eat();
        }
    }
    

    (2)接口
    接口通过interface去定义
     注:接口中的定义,所有都是抽象的(接口中的方法默认就是抽象的)
    1.定义一些方法,让不同的人实现
    2.接口不能实例化,接口中没有构造方法
    3.interface可以实现多个接口(但是接口中的方法必须重写)
    //接口
    public interface TestInterface{
        //接口中定义变量(public static final)
        public static final int a = 1;
        public static final String name = "11";
        void add();
        default void a(){
            System.out.println("固定的");
        }
    }
    //类继承接口
    public class TestClass implements TestInterface{
        @Override
        public void add() {
            System.out.println("我是接口");
        }
        public static void main(String[] args) {
            OTestClass testClass = new TestClass ();
            testClass.a();
            testClass.add();
        }
    }

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值